【发布时间】:2016-11-09 20:20:38
【问题描述】:
以下是我的 firebase 数据库中的数据,我想通过使用他的 firebase 用户 ID 获取用户的“doctorDetails”。
数据库结构:医生/用户ID/医生详情
// Data in Database :
{
"doctors" : {
"65smvSYkhfVBtM2GrPmOl3cdgDy1" : {
"doctorDetails" : {
"designation" : "Principal Scientist",
"docRegNumber" : "242354",
"doctorName" : "Dr Nicole Tesla",
"doctorVerified" : false,
"mobileNumber" : "970050 8070",
"specialization" : "Physicist"
}
},
"FOCSwhfIZSOpqUgueoWlakSkVYr1" : {
"doctorDetails" : {
"designation" : "Principal Scientist",
"docRegNumber" : "87509",
"doctorName" : "Dr Curie ",
"doctorVerified" : false,
"mobileNumber" : "80690 00343",
"specialization" : "Physicist"
}
}
}
}
以下是我使用他们的 firebase 用户 ID 获取“医生详细信息”的代码。
var userId = firebase.auth().currentUser.uid;
firebase.database().ref('doctors/'+userId+'/doctorDetails').on('value', function(snapshot){
console.log(snapshot.val());
});
但是,我仍然无法获取具有 userID 的用户的“医生详细信息”,有人可以建议我哪里出错了吗?
[编辑 1] 上面的代码只监听变化,如何在不附加监听器的情况下提取数据。
[编辑 2] 这是我设置的权限,我需要进行哪些更改才能读取数据?
{
"rules": {
"users": {
"$uid": {
".write": "$uid === auth.uid"
}
},
"doctors":{
"$uid": {
".write": "$uid === auth.uid"
}
}
}
}
【问题讨论】:
-
你调试过你的userId吗?查看代码,您的 firebase 调用应该可以正常工作。
-
我可以记录 userId。
-
通过添加第二个回调
, function(error) { console.error(error); })将错误侦听器附加到on(),它可能会告诉您出了什么问题。 -
我收到此错误:permission_denied at /doctors/FOCSwhfIZSOatgwesbs FWRF/doctorDetails: 客户无权访问所需数据
标签: firebase firebase-realtime-database