如何在传递 currentUserID 后从 Firebase 数据库中检索数据

How to retrieve data from Firebase database after passing currentUserID

这是我的 firebase 数据库 table:

.

我想使用用户 ID 从 table 'active' 检索数据。我在我的 service.ts 文件中这样尝试过。

getCurrentUserData(userID){
    return new Observable(obs => {
      this.db.list('/active')
      .valueChanges()
      .subscribe(res => {
         console.log(res)
     })
   });
}

假定当前用户 ID userID = "oiV0Q09hLbWv0nhFUeFd94aWF3f1" 并且 table 还有很多其他用户 ID 。我想获取当前用户详细信息 only.Using我在 table.How 中接收所有数据的代码只能使用 UserID.How 获取当前用户数据 我可以编辑我的代码吗?

使用filter运算符通过id过滤出结果

 getCurrentUserData(userID){
    return new Observable(obs => {
      this.db.list('/active')
      .filter(p => p.userID === "oiV0Q09hLbWv0nhFUeFd94aWF3f1")
      .valueChanges()
      .subscribe(res => {
         console.log(res)
     })
   });
}

基于 angulafire2 doc,我认为你应该像下面那样做。换句话说,您应该缩小查询范围,使过滤在数据库本身而不是在客户端级别完成。

 getCurrentUserData(userID){
    return new Observable(obs => {
      this.db.list('/active', ref => ref.orderByKey().equalTo('oiV0Q09hLbWv0nhFUeFd94aWF3f1'))
      .valueChanges()
      .subscribe(res => {
         console.log(res)
     })
   });
}

请注意,angulafire2 文档还提供了一些有关动态查询的解释。

您还可以阅读有关查询的 Firebase 文档,here,其中提供了有关查询技术的更多详细信息。