我已经在RealtimeDatabase中设置了规则,以便只有创建内容的人员才能读取或更新该内容,但是不幸的是,规则不能那样工作。
我还尝试了其他各种规则,但安全性较低,因此问题不在我的应用程序中。
这些是我的规则,不允许我读取自己的数据。
{
"rules": {
"posts": {
"$uid": {
".read": "$uid == auth.uid",
".write": "$uid == auth.uid"
}
}
}
}
我的应用中的代码。
路径:用户/ uid /信息 值:imageUrl
fun getFireBaseValue(Path: String, Value: String): String {
FirebaseDatabase.getInstance().getReference(Path).child(Value)
.addValueEventListener(object : ValueEventListener {
override fun onDataChange(p0: DataSnapshot) {
val fetchedValue = p0.value.toString()
}
override fun onCancelled(p0: DatabaseError) {
}
})
}
我希望我之前写过一个URL。但是相反,我得到一个错误:“ DatabaseError:权限被拒绝”。 据我了解规则,应该允许我读取自己的数据。
答案 0 :(得分:0)
如果代码示例中的Path
变量为user/uid/info
,则规则不允许访问该位置。该规则仅允许每个用户访问posts/uid
。规则中的路径需要与代码中的路径匹配,以便允许访问。