【问题标题】:How to get value in Firebase Database (Angular) by key?如何通过键在 Firebase 数据库(Angular)中获取价值?
【发布时间】:2021-03-02 18:53:16
【问题描述】:

您好,我的目标是通过键在我的数据库中获取嵌套值。 在这种情况下,我只想获取当前登录用户的用户名。

我的db结构如下:

我目前的解决方案是:

this.db.list("/Users/"+this.userId).valueChanges().subscribe(details => {
  this.username = details[3]
}

我想与这种方法不同,因为我不知道用户将获得哪些更多属性,并且任何 db 更改都不会传递用户名,是否有任何方法可以仅按键搜索数据库并获取它价值。我知道 orderByChild 和 orderByKeys 存在,但我无法确切了解它们是如何工作的,或者它们是否对这种特定情况有用。

【问题讨论】:

    标签: javascript angular firebase firebase-realtime-database angularfire2


    【解决方案1】:

    我宁愿使用object:

    this.db.object("/Users/" + this.userId).valueChanges()
      .subscribe(details => {
        this.username = details.Username;
      });
    

    【讨论】:

    • 感谢您的回复。使用 object 似乎是合适的方法,但是使用您的代码会引发 Unkown Property 错误,访问它的正确方法是使用 details["Username"]。
    • 抱歉,我低估了大小写。很高兴看到它有所帮助。
    【解决方案2】:

    使用 object 而不是 list 我可以通过它的键轻松访问检索到的字典:

    this.db.object("/Users/"+this.userId).valueChanges().subscribe(details => {
      this.username = details["Username"]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 2018-01-21
      • 1970-01-01
      • 2017-08-07
      • 2018-06-23
      • 1970-01-01
      相关资源
      最近更新 更多