【问题标题】:get firebase data once /snapshot from all child nodes in firebase cloud callable function从firebase云可调用函数中的所有子节点获取firebase数据一次/快照
【发布时间】:2020-08-07 14:53:32
【问题描述】:

我想读取一个节点的所有子节点(让我们说消息),数据的 json 如下所示。所以应该得到 xyz1, xyz2, xyz3 ....

{
  "messages" : {
    "-M5eDLlTbnvcXT2kfuYQ" : {
      "original" : "xyz1"
    },
    "-M5eDf8iY2c0emnbiw_R" : {
      "original" : "xyz2"
    },
    "-M5eDl2SZ2dDc8UWd8-4" : {
      "original" : "xyz3"
    }
  }
}

我尝试了以下代码

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

admin.initializeApp(functions.config().firebase);

export const repeat = functions.https.onCall(function (data, context) {

    console.log(' begin ');
    admin.database().ref('messages').once('value').then(
        function (snapshot) {
            console.log(' snapshotRead ' + snapshot.val().toString());
        }
    );
    console.log(' do further ');
}
);

但在 firebase deploy 上为“admin.database().ref... '

读取所有值的正确方法是什么?

【问题讨论】:

    标签: typescript firebase firebase-realtime-database google-cloud-functions


    【解决方案1】:

    根据documentation on sending back the result

    要在异步操作后返回数据,请返回一个承诺。 Promise 返回的数据被发送回客户端。

    至少,您必须执行以下操作:

        return admin.database().ref('messages').once('value').then(snapshot => {
            return snapshot.val();
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 2019-05-24
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多