Return 来自 Firebase 实时数据库的对象值
Return object value from Firebase realtime DataBase
我有一个 Firebase 中的对象(用户)列表。
每个对象看起来像这样:
我想为用户获取 'banned' 值。
现在我的函数看起来像这样:
isBanned() {
return this.db.object(`users/${this.authState.uid}/banned`)
}
而且 return 什么都没有。我应该如何正确地写这个?
我正在使用 angular 5 和 AngularFire2。
感谢您的帮助。
您的 .onAuthStateChanged
asynch 方法可能在触发此函数时未解析。尝试通过控制台从该函数中输出 ${this.authState.uid}
来查看。如果是 null
那是你的问题(asnych 问题)
假设您确实有 uid
,请尝试获取整个父节点然后 snap.val().banned
。
问题的核心是authState是异步的。我建议您将其重写为从 AngularFireAuth 的 authState 映射的 Observable:
this.isBanned$ = this.afAuth.authState.switchMap(u => u ? this.db.object(`users/${u.id}/banned`).valueChanges() : Observable.of(undefined))
我有一个 Firebase 中的对象(用户)列表。
每个对象看起来像这样:
我想为用户获取 'banned' 值。
现在我的函数看起来像这样:
isBanned() {
return this.db.object(`users/${this.authState.uid}/banned`)
}
而且 return 什么都没有。我应该如何正确地写这个?
我正在使用 angular 5 和 AngularFire2。
感谢您的帮助。
您的 .onAuthStateChanged
asynch 方法可能在触发此函数时未解析。尝试通过控制台从该函数中输出 ${this.authState.uid}
来查看。如果是 null
那是你的问题(asnych 问题)
假设您确实有 uid
,请尝试获取整个父节点然后 snap.val().banned
。
问题的核心是authState是异步的。我建议您将其重写为从 AngularFireAuth 的 authState 映射的 Observable:
this.isBanned$ = this.afAuth.authState.switchMap(u => u ? this.db.object(`users/${u.id}/banned`).valueChanges() : Observable.of(undefined))