gpt4 book ai didi

javascript - 参数 "options"不是 Firestore 上的有效 SetOptions 错误

转载 作者:行者123 更新时间:2023-11-29 23:27:58 25 4
gpt4 key购买 nike

我正在尝试将我的实时数据库内容复制到 firestore。但是当我使用 set 函数时出现此错误。

exports.copyPosts = functions.https.onRequest((req, res) => {
var i = 0;
var username;
db.ref("feeds").child("all").limitToLast(2000).once("value", function (postSnap) {
console.log(postSnap.numChildren());
postSnap.forEach(function(topic){
i = i + 1;
console.log(topic.key);
firestore.collection("topics").doc("all").collection(i+"").set({
caption: topic.child("caption").val(),
time: topic.child("time").val(),
username: topic.child("username").val(),
category: topic.child("category").val(),
pic: topic.child("pic").val()

},function(error) {
if (error) {
alert("Data could not be saved." + error);
} else {
alert("Data saved successfully.");
}
});

if(postSnap.numChildren()==i){
res.contentType('application/json');
res.status(200).send("Success");
}
});
});

});

错误日志

Error: Argument "options" is not a valid SetOptions. Input is not an object. at exports.(anonymous function) (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/validate.js:86:15) at Object.exports.(anonymous function) [as isOptionalSetOptions] (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/validate.js:91:35) at WriteBatch.set (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/write-batch.js:268:14) at DocumentReference.set (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/src/reference.js:425:8) at /user_code/index.js:2172:47 at /user_code/node_modules/firebase-admin/node_modules/@firebase/database/dist/cjs/src/api/DataSnapshot.js:126:20 at LLRBNode.inorderTraversal (/user_code/node_modules/firebase-admin/node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js:170:13) at LLRBNode.inorderTraversal (/user_code/node_modules/firebase-admin/node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js:169:27) at LLRBNode.inorderTraversal (/user_code/node_modules/firebase-admin/node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js:169:27) at LLRBNode.inorderTraversal (/user_code/node_modules/firebase-admin/node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js:169:27)

最佳答案

The API documentation for the set() method指出它需要两个参数:

  • 数据:文档的字段和值的映射。
  • 选项:(可选)配置设置行为的对象。

您向它传递了两个参数,一个对象和一个函数。看起来您希望在发生错误时调用该函数,但这并不是文档所说的它的工作方式。您收到 API 的错误是您没有在可选的第二个参数中传递有效的选项对象。

如果您对 set() 操作的结果感兴趣,请注意它返回的 promise 。约定是在出现错误的情况下,promise 将被拒绝。如果您要编写 Cloud Functions 代码,您肯定需要熟悉 promises 的工作原理。

关于javascript - 参数 "options"不是 Firestore 上的有效 SetOptions 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48364161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com