我不明白我的规则出了什么问题

时间:2019-10-16 20:25:59

标签: android kotlin firebase-realtime-database firebase-security

我已经在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:权限被拒绝”。 据我了解规则,应该允许我读取自己的数据。

1 个答案:

答案 0 :(得分:0)

如果代码示例中的Path变量为user/uid/info,则规则不允许访问该位置。该规则仅允许每个用户访问posts/uid。规则中的路径需要与代码中的路径匹配,以便允许访问。