当前位置: 首页 > 知识库问答 >
问题:

Google云函数错误:“无法从Firestore值解码类型”

邰宇
2023-03-14

在React应用程序中使用Firestore,我正在测试使用Google云函数获取一个文档字段,然后使用该字段在Firestore中创建一个新字段。前几天我让它工作了,现在不行了。

这是我在谷歌云功能日志中得到的错误:

错误:无法解码文件快照中FiresteValue:{"stringValue":"sox"}的类型。_decodeValue

下面是我使用的代码。它与此处的代码非常相似:https://firebase.google.com/docs/firestore/extend-with-functions#writing_data

exports.createShowDoubleName = functions.firestore
  .document('shows/{showId}')
  .onUpdate((event) => {
    const data = event.data.data();
    const previousData = event.data.previous.data();
    if (data.name == previousData.name) return;
    var name = data.name;
    var newname = name+"_"+name
     return event.data.ref.set({
        newname: newname
      }, {merge: true});
});

共有3个答案

范福
2023-03-14

我也有同样的问题和错误。在升级Firebase函数和Firebase管理员(npm安装firebase-functions@latest保存)和(npm安装firebase-admin@latest保存)后,它解决了这个问题。深入到日志中,这个问题似乎是在旧版本的Firebase-admin中。我现在运行管理版本5.5.1和功能版本0.7.4。

齐雅畅
2023-03-14

firebase功能SDK版本0.7。5应该可以解决这个问题。它现在强制firebase admin 5.5上存在对等依赖关系。0.获取它:

npm install firebase-functions@0.7.5
曹智
2023-03-14

当运行最新版本(0.7.4)的Firebase函数时,我无法重现错误。

您必须运行旧版本,因为当前版本的firebase functions需要触发器函数来返回promise或值。对于当前版本,此语句产生错误:

if (data.name == previousData.name) return;

并且必须改为:

if (data.name == previousData.name) return null;

建议您通过在项目的functions文件夹中运行以下命令升级firebase函数

npm install firebase-functions@latest --save
 类似资料:
  • 我已经部署了一个CloudFirebase函数来更新一些聚合数据,但是我得到了 聚合收据评级:错误:无法从文件快照中的消防恢复值解码类型:{“integerValue”:“3”}。_decodeValue(/user_code/node_modules/Firebase-admin/node_modules/@google-Cloud/消防恢复/src/document.js:464: 15)在D

  • 我想创建一个函数,将在身份验证触发器上添加数据到FIREST。 但它给出了错误 错误:无法在函数处将类型([object Undefined])编码为Firestore值。函数处的encodeValue(/user\u code/node\u modules/firebase admin/node\u modules/@google cloud/firestore/src/document.js:

  • 我正在编写云函数,Firez是这样自动导入的。 但在部署时,错误如下所示。我试着这样做,它部署没有任何错误,但我不确定这是正确的方式与否。 有人知道吗? node_modules/@googlecloud/firestore/types/firestore。d、 ts:28:15-错误TS2300:重复标识符“DocumentData”。 28导出类型DocumentData={[field: s

  • 我在nodeJS中有一个主要的谷歌云功能。在这个函数中,我希望通过编程在同一个项目中创建另一个云函数。这个新的云函数的代码可以存储在谷歌云存储的zip文件中。我试着跟着这里的导游走:https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions/create 我能够在测试模拟器中运行查询,

  • package.json: 我还为数据库设置了如下规则: