繁体   English   中英

Angular如何从firebase doc访问Json Array中的值

[英]Angular how to access values from Json Array from firebase doc

this.currentUser$=this.afs.doc('users/'+this.authState.uid).valueChanges().pipe();

当我在 component.html 中使用时

{{ currentUser$|async|json}}

我得到它如下:

{
  "photoUrl": "",
  "password": "",
  "mobileVerified": true,
  "id": "izoNRvk0moN579KqfQ1cVqNvpZJ2",
  "phone": "5544663311",
  "email": "admin@example.com",
  "name": "Rob B",
  "userRole": "admin"
}

例如,现在我只想访问emailuserRole ,我该怎么做?

设置pipe中的值。

currentUser$: Observable<User>;
currentUser?: User;

 :

 this.currentUser$=this.afs.doc('users/'+this.authState.uid).valueChanges().pipe(
  tap( value => {
    this.currentUser = value;
  })
 );

然后您可以访问每个属性。

{{currentUser?.email}}
{{currentUser?.userRole}}

我使用此处的建议从 firebase 集合中的单个文档中获取值,但必须对currentUser<User>currentUser<User | undefined>进行一些修改 currentUser<User | undefined>并且它工作得很好。

private userDoc: AngularFirestoreDocument<User>;
currentUser: Observable<User | undefined>;

在构造函数中:

this.userDoc = afs.doc<User>('users/'+this.docId);
this.currentUser = this.userDoc.valueChanges();

在component.html中我可以像这样访问它

{{(currentUser|async)?.email}}
{{(currentUser|async)?.userRole}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM