Javascript 无法从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) 在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解决方案部分中用于聚合查询的函数非常相似: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
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内容编辑