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

时间:2019-05-02 09:58:01

标签: firebase google-cloud-firestore google-cloud-functions

当我打开firebase函数的网址-https://us-central1-geochatterthing.cloudfunctions.net/getWall

我收到以下错误:

  

{“错误”:{“状态”:“ INVALID_ARGUMENT”,“消息”:“错误请求”}}

此外,我在Cloud Functions中的getWall函数如下图所示。

enter image description here

以下是api-http.js文件的链接:

https://gist.github.com/shubham6996/53cea6696b6d565b7f1ffce53bdaabf4

更新的问题:

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

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

let result = await wallFunc({size: 15});

当我使用以下代码检查result的输出时:

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;
        };
    };

上面的代码向我展示了控制台的以下输出:

  

显示结果=   {“ data”:{“ docs”:[{“ sort”:[1530702073924],“ id”:“ 04dhcfzDZbNLZoekfhl3”}],“ hits”:1}}

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

此外,在开头提到的“状态”错误:“ INVALID_ARGUMENT”,我发现了一些与此错误有关的内容:

  

如果调用了客户端触发器,但是请求有误   格式,例如不是JSON,字段无效或缺少   数据字段,该请求将被拒绝400错误请求,并带有   错误代码为INVALID_ARGUMENT。

来源:https://firebase.google.com/docs/functions/callable-reference

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

调用可调用函数时
const wallFunc = firebase.functions().httpsCallable('getWall');

let result = await wallFunc({size: 15});

我在这里确实将size作为参数传递,但是我不知道我是否在这里缺少什么。

api-http.js文件中,在此文件的第36行,它显示数据的大小为2个对象,而我仅传递size参数。

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

1 个答案:

答案 0 :(得分:1)

很明显,您正在混用Callable Cloud FunctionsHTTP Cloud Functions

当您直接通过URL(https://us-central1-geochatterthing.cloudfunctions.net/getWall)调用Cloud Function时,这意味着该Cloud Function是一个HTTP功能。

但是从Cloud Function代码(_firebase.functions.https.onCall())看来,它是可调用的代码。

因此,您应该使用从React Native应用程序(参见问题中的代码)而不是通过URL调用它的方式来调用它。另请参见文档的此特定部分:https://firebase.google.com/docs/functions/callable#call_the_function