如何在传递 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,其中提供了有关查询技术的更多详细信息。
这是我的 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,其中提供了有关查询技术的更多详细信息。