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。

感谢您的帮助。

您的 .onAuthStateChangedasynch 方法可能在触发此函数时未解析。尝试通过控制台从该函数中输出 ${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))