Firebase函数在打开Firebase函数URL时显示错误

Firebase函数在打开Firebase函数URL时显示错误,firebase,google-cloud-firestore,google-cloud-functions,Firebase,Google Cloud Firestore,Google Cloud Functions,所以我有一个场景,当我打开firebase函数的url时- 我得到以下错误: {“error”:{“status”:“INVALID_参数”,“message”:“Bad Request”} 另外,云函数中的getWall函数如下图所示 下面是指向api-http.js文件的链接: 更新问题: 使用以下代码从我的React本机应用程序调用此函数: const wallFunc = firebase.functions().httpsCallable('getWall'); let resu

所以我有一个场景,当我打开firebase函数的url时-

我得到以下错误:

{“error”:{“status”:“INVALID_参数”,“message”:“Bad Request”}

另外,云函数中的getWall函数如下图所示

下面是指向api-http.js文件的链接:

更新问题:

使用以下代码从我的React本机应用程序调用此函数:

const wallFunc = firebase.functions().httpsCallable('getWall');

let result = await wallFunc({size: 15});
console.log("Show result = "+JSON.stringify(result, this.getCircularReplacer()));

 getCircularReplacer = () => {
        const seen = new WeakSet();
        return (key, value) => {
          if (typeof value === "object" && value !== null) {
            if (seen.has(value)) {
              return;
            }
            seen.add(value);
          }
          return value;
        };
    };
当我使用以下代码检查
结果的输出时:

const wallFunc = firebase.functions().httpsCallable('getWall');

let result = await wallFunc({size: 15});
console.log("Show result = "+JSON.stringify(result, this.getCircularReplacer()));

 getCircularReplacer = () => {
        const seen = new WeakSet();
        return (key, value) => {
          if (typeof value === "object" && value !== null) {
            if (seen.has(value)) {
              return;
            }
            seen.add(value);
          }
          return value;
        };
    };
上面的代码显示了控制台中的以下输出:

显示结果= {“数据”:{“文档”:[{“排序”:[1530702073924],“id”:“04dhcfzDZbNLZoekfhl3”}],“点击数”:1}

此处的“id”:
04dhcfzDZbNLZoekfhl3
是从Firebase数据库集合中获取的文档的id。但我希望能够从该集合中获取每个文档的数据,而不是仅获取一个文档

另外,在我提到的“status”错误的开头:“INVALID_ARGUMENT”,我发现了与此错误相关的一些东西:

如果调用了客户机触发器,但请求错误 格式,例如不是JSON、具有无效字段或缺少 数据字段中,请求被拒绝,错误请求为400,错误请求为 无效参数的错误代码

资料来源:

在我的应用程序中,当我使用

const wallFunc = firebase.functions().httpsCallable('getWall');

let result = await wallFunc({size: 15});
我确实在这里传递了size作为参数,但我不知道这里是否遗漏了什么

在这个文件中,在第36行的这个文件中,它显示了数据有两个对象,分别是size和from,而我只传递size参数


我在这里解释我的问题可能是错误的,因为我实际上是在重新设计这个应用程序。因此,我对正确的方法感到困惑。

显然,你混淆了

当您通过URL()直接调用云函数时,表示此云函数是HTTP函数

但从云函数代码(
\u firebase.functions.https.onCall()
)来看,它似乎是一个可调用的函数


因此,您应该按照React本机应用程序调用它的方式(请参阅问题中的代码)而不是通过URL调用它。另请参阅文档的这一特定部分:

显然,您混淆了和

当您通过URL()直接调用云函数时,表示此云函数是HTTP函数

但从云函数代码(
\u firebase.functions.https.onCall()
)来看,它似乎是一个可调用的函数


因此,您应该按照React本机应用程序调用它的方式(请参阅问题中的代码)而不是通过URL调用它。另请参阅文档的这一特定部分:

嘿,我已经看过了你推荐给我的所有内容,但到目前为止还没有找到任何答案。你能检查一下我的最新问题吗?我对这个问题有一点不同的看法,还有一点额外的信息。我不明白的是,为什么你想通过URL调用一个可调用的函数,而不是文档中解释的方式。你有一些具体的限制吗?顺便说一句,如果你认为我的答案是“有帮助的和经过充分研究的”,你可以选择它,见。您还应该对您收到的其他问题之一的答案进行同样的处理:如您参考的文档中所述:“如果您能够使用Android、iOS或web SDK,建议您这样做,而不是直接实现此协议。SDK提供了节省编码工作量的功能,如应用程序()中的调用函数所述。”。显然,您的可调用云函数只获取一个文档。您可以修改它以调用多个文档(这将在云函数代码本身中完成),也可以从前端多次调用它(可能不是最有效的方式…)嘿,我已经看过了你推荐给我的所有东西,但到目前为止我什么都没弄明白。你能检查一下我更新的问题吗?我对这个问题有一点不同的看法,还有一个额外的信息。我不明白的是,为什么你想通过URL调用一个可调用的函数,而不是文档中解释的方式n、 你有一些具体的限制吗?顺便说一句,如果你认为我的答案是“有帮助的和经过充分研究的”,你可以选择它,看。你也应该对你收到的其他问题的答案做同样的处理:正如你提到的文件中所解释的:如果您能够使用Android、iOS或web SDK,建议您这样做,而不是直接实现此协议。SDK提供了节省编码工作量的功能,如应用程序()中的调用函数所述。”。显然,您的可调用云函数只获取一个文档。您可以修改它以调用多个文档(这将在云函数代码本身中完成)或从前端多次调用它(可能不是最有效的方式…)