【问题标题】:Cloud Functions for Firebase: Enumerate DataSnapshot PropertiesFirebase 的云函数:枚举 DataSnapshot 属性
【发布时间】:2017-08-13 22:00:00
【问题描述】:

我想在我的 Firebase 函数中迭代 DataSnapshot 属性。这是我的代码。

alignmentsRef.once('value')
.then(function(snapshot) {
    snapshot.forEach(function(k) {
        var itemId = k.key //itemId
        var childData = k.val() //{downvotes: {memberId: "down"}, upvotes: {memberId: "up"}}
        var memberIds = childData.downvotes // {memberId: "down"}
        memberIds.forEach(l => {
            ...
        })
    })

memberIds 似乎不可枚举,因为我收到错误:

memberIds.forEach 不是函数。

【问题讨论】:

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


    【解决方案1】:

    memberIds 将是 Object - 而不是 Array - 因此您无法使用 forEach 枚举它。但是,您可以使用child 将其作为快照访问:

    alignmentsRef
      .once('value')
      .then(function (snapshot) {
        snapshot.forEach(function (k) {
            k.child('downvotes').forEach(function (d) {
              console.log(`${d.key} = ${d.val()}`);
            });
        });
    

    【讨论】:

    • 哦,哇。我不敢相信我没有意识到我正在这样做。我正在尝试将我在节点中使用的函数转换为 Firebase 云函数。原始用途使用 Object.keys() 来获取密钥,然后对其进行迭代。我忘记了 Object.keys() 也输出一个数组。
    猜你喜欢
    • 1970-01-01
    • 2018-09-27
    • 2014-02-22
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2017-03-05
    • 2018-02-04
    相关资源
    最近更新 更多