将另一个子项中的子项检索到Firebase中的数组

时间:2018-01-05 18:54:12

标签: arrays firebase-realtime-database ionic3

这是数据的结构: enter image description here

我正在尝试将guestList的“guestName”和“profilePicture”检索到一个数组(this.guestList)。 我正在使用此代码获取快照:

this.itemProvider.getguestList(this.navParams.get('itemId'))
        .on('value', guestSnapshot => {
        
          guestSnapshot.forEach(snap => {
            this.guestList.push({
              id:           snap.key,
              guest:        snap.val()         
            });
            
            return false;
          });

我得到这样的数组:

console.log:

eventList​ length​ ​3​   [
  {
    "id": "-L1zPnV8eFpyTZlRZSkS",
    "guestList": {
      "profile​Picture": "https://firebasestorage.googleapis.com/v0/b/items-222f4.appspot.com/o/itemPictures%2F-L1zPnV8eFpyTZlRZSkS%2FItemPicture.png?alt=media&token=974cf1c7-974b-4f10-89bd-9033ef25d476",
      "​guest​Name": "Test"
    }
  },
  {
    "id": "-L1zQ41CVIwKTbAA_yiQ",
    "​guestList": {
      "​profile​Picture": "https://firebasestorage.googleapis.com/v0/b/items-222f4.appspot.com/o/itemPictures%2F-L1zQ41CVIwKTbAA_yiQ%2FItemPicture.png?alt=media&token=bd32f971-7b81-4891-8f1f-9fd47185d105",
      "​guest​Name": "Test"
    }
  },
  {
    "id": "-L1zQKQBrnpgVdwqIdsU",
    "guestList": {
      "profile​Picture": "https://firebasestorage.googleapis.com/v0/b/items-222f4.appspot.com/o/itemPictures%2F-L1zQKQBrnpgVdwqIdsU%2FItemPicture.png?alt=media&token=ab7d193c-8938-4820-aa8d-d091c9d89211",
      "​guest​Name": "Test"
    }
  }
]

我需要将“profilePicture”和guestName作为数组的成员。 我需要改变什么?

1 个答案:

答案 0 :(得分:1)

您可以对快照进行子地址处理,也可以对该值进行子地址处理。

快照中的子地址使用child()

完成
      guestSnapshot.forEach(snap => {
        this.guestList.push({
          id:           snap.key,
          guest:        snap.child('"guestlist").val()         
        });

值中的子地址使用:

完成
      guestSnapshot.forEach(snap => {
        this.guestList.push({
          id:           snap.key,
          guest:        snap.val().guestlist
        });