我在Firebase中有一个对象(用户)列表。 每个对象看起来像这样:
我想让用户获得“禁止”价值。
现在我的func看起来像这样:
isBanned() {
return this.db.object(`users/${this.authState.uid}/banned`)
}
它什么也没有回报。我该怎么写这个呢?
我正在使用angular 5和AngularFire2。
感谢您的帮助。
答案 0 :(得分:1)
当此函数被触发时,您的.onAuthStateChanged
异步方法可能无法解决。尝试通过控制台查看该功能中的${this.authState.uid}
。如果它null
是你的问题(asnych问题)
假设您确实拥有uid
,请尝试获取整个父节点,然后snap.val().banned
。
答案 1 :(得分:1)
问题的核心是authState是异步的。我建议你把它重写为一个从AngularFireAuth' authState映射的Observable:
this.isBanned$ = this.afAuth.authState.switchMap(u => u ? this.db.object(`users/${u.id}/banned`).valueChanges() : Observable.of(undefined))