使用可调用函数将数据从Firebase发送回客户端

时间:2019-07-17 04:10:16

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

我已经创建了一个可调用的Cloud Function,以从Firebase读取数据并将结果发送回客户端,但是,只有“ null”返回给客户端。

exports.user_get = functions.https.onCall((data, context) => {

    if (context.auth && data) {
        return admin.firestore().doc("users/" + context.auth.uid).get()

            .then(function (doc) {
                return { doc.data() };
            })

            .catch(function (error) {
                console.log(error);
                return error;
            })
    } return 

});

1 个答案:

答案 0 :(得分:1)

我刚刚转载了您的案例,该案例是通过Cloud Function与Firestore数据库连接并检索数据的。如我所见,当您使用"users/" + context.auth.uid时,您试图以错误的方式访问该字段,该方法找不到该字段,因此该字段返回空值。

我只是按照这份Quickstart using a server client library文档来填充Firestore数据库,并使用node.js从中获取数据。

此后,我遵循此Deploying from GCP Console文档,以使用以下功能部署HTTP触发的Cloud Function

exports.helloWorld = (req, res) => {  
  firestore.collection('users').get()
  .then((snapshot) => {
    snapshot.forEach((doc) => {
      console.log(doc.id, '=>', doc.data().born);
      let ans = {
        date : doc.data().born
      };
      res.status(200).send(ans);
    });
  })

这将返回所需的字段。

您可以看一下我整个example code here