无法列出带有Firebase和angular 6的数据

时间:2018-09-23 09:29:18

标签: angular firebase firebase-realtime-database

有人可以帮忙吗? 我有这些数据:

 "offersByArea" : {
        "-KPCQvj8Pe8Ju5ArbeBS" : {
          "beauty" : {
            "offer5" : true
          },
          "entertainment" : {
            "offer3" : true
          },
          "food" : {
            "offer1" : true,
            "offer2" : true,
            "offer14" : true
          },
          "shopping" : {
            "offer4" : true
          }
        },
        "-KPCRNmbNpoOrSHQlfrG" : {
          "beauty" : {
            "offer6" : true
          },
          "food" : {
            "offer8" : true,

          },
          "offer12" : true,
          "shopping" : {
            "offer9" : true
          }
        }
      }

在没有Angularfire的情况下,如何列出给定区域(例如-KPCQvj8Pe8Ju5ArbeBS)中包含的所有商品的参考(例如:offer1,offer2)

我尝试过:

firebase.database().ref().child('offersByArea').child('KPCQvj8Pe8Ju5ArbeBS').child('food').on('value', function(keys) {
          console.log(keys)
          keys.forEach(function(keySnapshot) {
            console.log(keySnapshot)
          });
        })

但是它什么也不返回。

亚历克斯。

1 个答案:

答案 0 :(得分:0)

我认为这应该可行,尽管可能有更好的方法来读取特定属性:

function getFood(id) {
  return firebase.database()
    .ref(`/offersByArea/${id}`)
    .once('value')
    .then((snapshot) => Object.keys((snapshot.val() && snapshot.val().food) || {}));
}

getFood('-KPCQvj8Pe8Ju5ArbeBS');