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

参数“options”在Firestore上不是有效的SetOptions错误

庄博厚
2023-03-14

我正在尝试将我的实时数据库内容复制到fiRecovery。但是当我使用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");
                }
            });
        });

});

错误日志

错误:参数“options”不是有效的SetOptions。输入不是对象。在出口方面。(匿名函数)(/user_code/node_modules/firebase admin/node_modules/@google cloud/firestore/src/validate.js:86:15)。出口。(匿名函数)[作为isOptionalSetOptions](/user_code/node_modules/firebase admin/node_modules/@google cloud/firestore/src/validate.js:91:35)位于WriteBatch。在DocumentReference中设置(/user_code/node_modules/firebase admin/node_modules/@google cloud/firestore/src/write batch.js:268:14)。将(/user_code/node_modules/firebase admin/node_modules/@google cloud/firestore/src/reference.js:425:8)设置为/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在LLRBNode。iOrderTraversal(/user_code/node_modules/firebase admin/node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js:170:13)位于LLRBNode。iOrderTraversal(/user_code/node_modules/firebase admin/node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js:169:27)位于LLRBNode。iOrderTraversal(/user_code/node_modules/firebase admin/node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js:169:27)位于LLRBNode。inorderTraversal(/user_code/node_modules/firebase admin/node_modules/@firebase/database/dist/cjs/src/core/util/SortedMap.js:169:27)

共有1个答案

史默
2023-03-14

set()方法的API文档说明它有两个参数:

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

你要给它传递两个参数,一个对象和一个函数。您似乎希望在发生错误时调用该函数,但文档中并不是这么说的。获取API时发现未在可选的第二个参数处传递有效的options对象时发生的错误。

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

 类似资料:
  • 我正在尝试为rest api定义一个简单的swagger定义。我在所有参数部分都收到错误。 我在招摇编辑器中得到了以下招摇定义错误,我不知道我错了什么。请告知。 昂首阔步的定义: 昂首阔步错误:

  • $publickey=“../ssh/public/pub”;$plaintext=“要加密的字符串”; openssl rsa-in/path/to/privatekey-pubout-out/path/to/publickey

  • 我有这个夸张的定义 但它给我以下错误 ✖ Swagger Error Not a valid parameter definition跳转到第6996行Details Object code:“ONE\u OF_MISSING”参数:数组[0]消息:“Not a valid parameter definition”路径:数组[5]schemaId:http://swagger.io/v2/sch

  • Swagger没有为这个查询参数提供有效的参数定义。如果我删除路径和参数定义中对用户名的所有引用,则不会出现任何问题。 根据Swagger规范,我相信我使用了正确的查询参数,但不知何故它不是。

  • 我正试着跟着弗利特酒吧走。Cognito和AWS用户身份验证的开发文档。我正在构建一个Flatter移动应用程序,并且能够成功地将用户注册到我的AWS用户池中。我试图编码的登录功能,但它不会注册任何参数,我试图给它。i、 e密码和用户名(电子邮件) 我试着重新启动电脑,Android Studio,尝试遵循所有AWS文档,并在上面重新编写代码https://pub.dev/packages/ama

  • 我正在websphere 7.0版本上运行一个应用程序,该应用程序是在我的QA环境中新设置的,并且低于oracle错误