简体   繁体   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();

When I am using in component.html like当我在 component.html 中使用时

{{ currentUser$|async|json}}

I am getting it like below:我得到它如下:

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

Now for example I want to access just email or userRole , how I can do it?例如,现在我只想访问emailuserRole ,我该怎么做?

Set the value in pipe .设置pipe中的值。

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

 :

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

Then you can access each property.然后您可以访问每个属性。

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

I used the suggestions here to get the values from single document from firebase collection, but had to make a little modification for currentUser<User> to currentUser<User | undefined>我使用此处的建议从 firebase 集合中的单个文档中获取值,但必须对currentUser<User>currentUser<User | undefined>进行一些修改currentUser<User | undefined> and it works perfectly. currentUser<User | undefined>并且它工作得很好。

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

and in constructor:在构造函数中:

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

and in component.html I can access this like在component.html中我可以像这样访问它

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

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

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