Javascript 无法从Firestore值中解码类型

Javascript 无法从Firestore值中解码类型,javascript,firebase,google-cloud-functions,google-cloud-firestore,Javascript,Firebase,Google Cloud Functions,Google Cloud Firestore,我已经部署了一个CloudFirebase函数来更新一些聚合数据,但是我得到了 aggregateReceivedRatings:错误:无法从Firestore值中解码类型:{“integerValue”:“3”} 在DocumentSnapshot.\u decodeValue(/user\u code/node\u modules/firebase admin/node\u modules/@google cloud/firestore/src/document.js:464:15) 在Do

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

aggregateReceivedRatings:错误:无法从Firestore值中解码类型:{“integerValue”:“3”} 在DocumentSnapshot.\u decodeValue(/user\u code/node\u modules/firebase admin/node\u modules/@google cloud/firestore/src/document.js:464:15) 在DocumentSnapshot.get(/user\u code/node\u modules/firebase admin/node\u modules/@google cloud/firestore/src/document.js:372:17) 在exports.aggregateReceivedRatings.functions.firestore.document.onWrite.event(/user\u code/lib/index.js:9:32)处 反对。(/user\u code/node\u modules/firebase functions/lib/cloud functions.js:59:27) 在下一个(本地) at/user\u code/node\u modules/firebase functions/lib/cloud functions.js:28:71 at_uuwaiter(/user_code/node_modules/firebase functions/lib/cloud functions.js:24:12) 在cloudFunction(/user\u code/node\u modules/firebase functions/lib/cloud functions.js:53:36) at/var/tmp/worker/worker.js:695:26 在进程中。_tickDomainCallback(internal/process/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--保存

重新部署,但运气不佳

My package.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
}

有什么帮助吗?

只需将firebase admin更新为5.5.1。这对我很有效。只需在中使用命令行:
npm安装--保存firebase admin@^5.5.1

这个问题我没有解决方案,但我可以告诉你的是,在这个问题上,你并不是唯一一个。今天我想执行一个云函数,昨天它工作得很好,但今天我遇到了与你相同的错误,重新部署或更改代码都没有解决这个问题。我有几个函数,除了带有数据库触发器的函数外,所有函数都可以正常工作。在http触发器函数中执行读写操作时不会出现任何错误。所以我认为这与我们的代码无关,而是与Firebase/Firestore本身有关。这里是消防队。目前还不清楚是什么导致了这种情况,但我们的工程师怀疑这可能与您的依赖性有关。您是否可以编辑您的问题以包含您的
package.json
?通过添加package.json内容编辑