繁体   English   中英

如何从Firebase Cloud Function获取JSON数据

[英]How to get JSON data from Firebase Cloud Function

我的代码有问题吗? 我总是收到错误错误:无法处理请求 这是我的Cloud Function的代码:

exports.helloWorld = functions.https.onRequest((request, response) => {
    cors(request, response, () => {
        response.set("Access-Control-Allow-Origin", "*");
        response.set("Access-Control-Allow-Methods", "GET");
        response.set("Access-Control-Allow-Headers", "Content-Type");
        response.set("Access-Control-Max-Age", "3600");

        let dock = [];
        const snapshot = db.collection("users").get()
        snapshot.docs.forEach((val) => {
            dock.push(val.id);
        });
    });
});

我不知道您是否要返回dock作为响应,但是如果这样做,请尝试以下操作:

exports.helloWorld = functions.https.onRequest((request, response) => {
    cors(request, response, () => {
        response.set("Access-Control-Allow-Origin", "*");
        response.set("Access-Control-Allow-Methods", "GET");
        response.set("Access-Control-Allow-Headers", "Content-Type");
        response.set("Access-Control-Max-Age", "3600");

        let dock = [];
        db.collection("users").get().then(snapshot => {
          snapshot.docs.forEach((val) => {
            dock.push(val.id);
          });
          return dock;
        })
        .catch(errors => {
          console.log(errors);
          return false;
        })
    });
});

get()返回您必须解决的承诺。 在执行代码时,最好在最后放置catch()以查看是否出现错误。

HTTPS触发的Cloud Functions(与您所问的问题类似)一直运行,直到它向客户端发送响应或超时为止。 由于您的代码从不向客户端发送响应,因此超时。 这就是客户给您错误的原因。

我假设您想将文档ID发送回客户端,因此类似:

exports.helloWorld = functions.https.onRequest((request, response) => {
    cors(request, response, () => {
        response.set("Access-Control-Allow-Origin", "*");
        response.set("Access-Control-Allow-Methods", "GET");
        response.set("Access-Control-Allow-Headers", "Content-Type");
        response.set("Access-Control-Max-Age", "3600");

        let documentIds = [];
        db.collection("users").get().then((snapshot) => {
          snapshot.docs.forEach((document) => {
            documentIds.push(document.id);
          });
          res.send(JSON.stringify(documentIDs));
        });
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM