Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过键在Firebase数据库(Angular)中获取值?_Javascript_Angular_Firebase_Firebase Realtime Database_Angularfire2 - Fatal编程技术网

Javascript 如何通过键在Firebase数据库(Angular)中获取值?

Javascript 如何通过键在Firebase数据库(Angular)中获取值?,javascript,angular,firebase,firebase-realtime-database,angularfire2,Javascript,Angular,Firebase,Firebase Realtime Database,Angularfire2,我的目标是通过键在数据库中获取嵌套值。 在本例中,我只想获取当前登录用户的用户名 my db的结构如下所示: 我目前的解决办法是: this.db.list("/Users/"+this.userId).valueChanges().subscribe(details => { this.username = details[3] } 我想偏离这种方法,因为我不知道用户将获得更多的属性,任何数据库更改都不会传递用户名,是否有任何方法仅通过键搜索数据库并获取其各自

我的目标是通过键在数据库中获取嵌套值。 在本例中,我只想获取当前登录用户的用户名

my db的结构如下所示:

我目前的解决办法是:

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

我想偏离这种方法,因为我不知道用户将获得更多的属性,任何数据库更改都不会传递用户名,是否有任何方法仅通过键搜索数据库并获取其各自的值。我知道orderByChild和orderByKeys是存在的,但我无法确切理解它们是如何工作的,或者它们是否对这种特定情况有用。

我宁愿使用
对象

this.db.object(“/Users/”+this.userId).valueChanges()
.订阅(详细信息=>{
this.username=details.username;
});

使用对象而不是列表,我可以通过其键轻松访问检索到的词典:

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

谢谢你的回复。使用object似乎是合适的方法,但是使用代码会引发未知属性错误,正确的访问方法是使用details[“Username”]。对不起,我低估了大小写。很高兴看到它有所帮助。