首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在firebase实时数据库中获取孙子对象的值?

如何在firebase实时数据库中获取孙子对象的值?
EN

Stack Overflow用户
提问于 2019-05-12 06:25:30
回答 1查看 248关注 0票数 0

我正在尝试获取发送者的子值,如果它等于当前登录的用户。但是我不能得到同样的结果。

数据库的JSON如下:-

代码语言:javascript
复制
{
  "requests" : {
    "YJ5qTg2uuqQeicsWCTCNQMv4OwL2" : {
      "-Lecn9gN5puugx5z-PKX" : {
        "sender" : "0XWmi1Izr6XHYvqxamfNHDONSVA2",
        "status" : "Pending"
      }
    }
  }

}

这就是我尝试过的,但我总是得到null。

代码语言:javascript
复制
this.firebase.database().ref('/requests').orderByChild('sender').equalTo(firebase.auth().currentUser.uid).on('value',(snapshot) =>
    {
      console.log(snapshot.val());
    })

但是每次我得到的结果都是null。

我确实明白我应该提供孩子的地址来联系孙子。

代码语言:javascript
复制
this.firebase.database().ref('/requests').orderByChild('-Lecn9gN5puugx5z-PKX/status').equalTo('Pending').on('value',(snapshot) =>
    {
      console.log(snapshot.val());
    })

如果我显式地提供了子地址,那么我将获得所需的值。

EN

回答 1

Stack Overflow用户

发布于 2019-05-12 07:24:32

当您对Firebase数据库执行查询时,可能会有多个结果。因此,快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果列表。

您的回调需要通过使用forEach循环结果的子节点来处理该列表。所以就像这样:

代码语言:javascript
复制
this.firebase.database().ref('/requests')
.orderByChild('-Lecn9gN5puugx5z-PKX/status').equalTo('Pending').on('value',(snapshot) => {
  snapshot.forEach((child) => {
    console.log(child.key+': '+child.val());
  })
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56094744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档