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

无法从Firestore值中解码类型

洪承天
2023-03-14

我已经部署了一个CloudFirebase函数来更新一些聚合数据,但是我得到了

聚合收据评级:错误:无法从文件快照中的消防恢复值解码类型:{“integerValue”:“3”}。_decodeValue(/user_code/node_modules/Firebase-admin/node_modules/@google-Cloud/消防恢复/src/document.js:464: 15)在DocumentSnapshot.get(/user_code/node_modules/Firebase-admin/node_modules/@google-Cloud/消防恢复/src/document.js:372: 17)exports.aggregateReceivedRatings.functions.firestore.document.onWrite.event(/user_code/lib/index.js: 9:32)at Object.下一个(本机)在 /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28: 71在__awaiter(/user_code/node_modules/Firebase函数/库/cloud-functions.js:24: 12)在云函数(/user_code/node_modules/Firebase函数/库/cloud-functions.js:53: 36)在 /var/tmp/worker/worker.js:695:26在进程。_tickDomainCallback(内部/进程/next_tick.js:135:7)

该函数与Firestore解决方案部分中用于聚合查询的函数非常相似:

exports.aggregateReceivedRatings = functions.firestore.document('users/{userId}/feedbacks_received/{ratingId}')
.onWrite(event => {
  var ratingVal = event.data.get('rating');

  const db = admin.firestore();  
  var restRef = db.collection('users').document(event.params.userId);

  return db.transaction(transaction => {
    return transaction.get(restRef).then(restDoc => {
      var newNumRatings = restDoc.data('received_feedbacks').tot + 1;

      var newSum = restDoc.data('received_feedbacks').sum + ratingVal;

      return transaction.update(restRef, {
        sum: newSum,
        tot: newNumRatings
      });
    });
  });
});

额定值为整数3。

我也跑了

npm安装firebase-functions@latest火基-admin@latest--保存

重新部署,但运气不好。

我的包裹。json包含以下内容:

    {
  "name": "functions",
  "scripts": {
    "build": "./node_modules/.bin/tslint -p tslint.json && ./node_modules/.bin/tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase experimental:functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "main": "lib/index.js",
  "dependencies": {
    "firebase-admin": "~5.4.2",
    "firebase-functions": "^0.7.1"
  },
  "devDependencies": {
    "tslint": "^5.8.0",
    "typescript": "^2.5.3"
  },
  "private": true
}

有什么帮助吗?

共有1个答案

都飞跃
2023-03-14

只需将firebase admin更新为5.5。这对我很有效。只需使用以下命令行:npm install--save firebase admin@^5.5。1.

 类似资料:
  • 在React应用程序中使用Firestore,我正在测试使用Google云函数获取一个文档字段,然后使用该字段在Firestore中创建一个新字段。前几天我让它工作了,现在不行了。 这是我在谷歌云功能日志中得到的错误: 错误:无法解码文件快照中FiresteValue:{"stringValue":"sox"}的类型。_decodeValue 下面是我使用的代码。它与此处的代码非常相似:https

  • 问题内容: 我正在尝试向我的Watchkit扩展发送“类”,但出现此错误。 由于未捕获的异常’NSInvalidUnarchiveOperationException’而终止应用程序,原因:’ -[NSKeyedUnarchiver encodeObjectForKey:]:无法解码类(MyApp.Person)的对象 存档和取消存档在iOS App上运行良好,但在与watchkit扩展进行通信时

  • 我们正在使用spring cloud stream,并计划升级我们的Kafka版本 我们的应用程序使用apache kafka服务器的(spring kafka 2.1.7),还使用进行跟踪 我们将把Kafka服务器升级到,因此需要升级到与和 我们有约200个使用Kafka的应用程序,因此升级将逐步进行,因此作为中间状态,我们将有更新版本的生产者和使用旧版本的消费者 我们的消费者正在使用。 在我们

  • 本文向大家介绍lua中赋值类型代码详解,包括了lua中赋值类型代码详解的使用技巧和注意事项,需要的朋友参考一下 我们来看看lua vm在解析下面源码并生成bytecode时的整个过程: 首先我们先使用ChunkySpy这个工具来看看vm最终会具体生成什么样的vm instructions 在这里,开头为[数字]的行是vm真正生成的字节码,我们看到一共生成了六行字节码。首先loadk将常量表中下标为

  • 我使用Spring Cloud Data Flow设置一个读取CSV文件的流,使用自定义处理器对其进行转换并记录: 文件和csvToMap应用程序工作正常,但在日志应用程序中,我看到这种异常,对于每条记录: 对于file\u relativePath标头,也会引发此异常。我不明白为什么斯普林·Kafka试图将它们解读为JSON。 此外,日志接收器以正确的方式记录我的记录: 出于调试目的,我将kaf