Angular 从Firebase实时数据库返回对象值
我在Firebase中有一个对象(用户)列表。 每个对象都是这样的: 我想为用户获得“禁止”值 现在我的func看起来像这样:Angular 从Firebase实时数据库返回对象值,angular,firebase,angularfire,angularfire2,Angular,Firebase,Angularfire,Angularfire2,我在Firebase中有一个对象(用户)列表。 每个对象都是这样的: 我想为用户获得“禁止”值 现在我的func看起来像这样: isBanned() { return this.db.object(`users/${this.authState.uid}/banned`) } 它什么也不回。我应该如何正确地写这个 我用的是Angular5和AngularFire2 谢谢您的帮助。在启动此函数时,您的.onAuthStateChanged异步方法可能尚未解决。通过控制台从该函数
isBanned() {
return this.db.object(`users/${this.authState.uid}/banned`)
}
它什么也不回。我应该如何正确地写这个
我用的是Angular5和AngularFire2
谢谢您的帮助。在启动此函数时,您的
.onAuthStateChanged
异步方法可能尚未解决。通过控制台从该函数中取出${this.authState.uid}
来尝试查看。如果是null
,那就是你的问题(asnych问题)
假设您确实拥有
uid
,请尝试获取整个父节点,然后snap.val()。禁用可能在触发此函数时,您的.onAuthStateChanged
异步方法未得到解决。通过控制台从该函数中取出${this.authState.uid}
来尝试查看。如果是null
,那就是你的问题(asnych问题)
假设您确实有uid
,请尝试获取整个父节点,然后snap.val()。禁用问题的核心是authState是异步的。我建议您将其重写为AngularFireAuth的authState映射的可观察对象:
this.isBanned$ = this.afAuth.authState.switchMap(u => u ? this.db.object(`users/${u.id}/banned`).valueChanges() : Observable.of(undefined))
问题的核心是authState是异步的。我建议您将其重写为AngularFireAuth的authState映射的可观察对象:
this.isBanned$ = this.afAuth.authState.switchMap(u => u ? this.db.object(`users/${u.id}/banned`).valueChanges() : Observable.of(undefined))