Firebase如何为特定用户授予读取权限

Firebase如何为特定用户授予读取权限,firebase,firebase-security,Firebase,Firebase Security,JSON如下所示: "messages" : { "msg" : { "-Kr2Qb93tM7yP-J7zuAq" : { "text" : "hello", "toId" : "EeLIxkOEfhMUlsM8WGnHdgeT8xW2", "fromId" : "IxfnlsekOh8WEG2HdgMUMWT8xEeL" } } } 如果“toId”的值

JSON如下所示:

"messages" : {
    "msg" : {
       "-Kr2Qb93tM7yP-J7zuAq" : {
              "text" : "hello",
              "toId" : "EeLIxkOEfhMUlsM8WGnHdgeT8xW2",
              "fromId" : "IxfnlsekOh8WEG2HdgMUMWT8xEeL"
            }
    }
 }
如果“toId”的值包含用户的uid,我如何仅向用户授予“-Kr2Qb93tM7yP-J7zuAq”的读取权限

并且“fromId”可以编辑\删除快照


谢谢

将Firebase实时数据库规则更改为以下内容:-

rules": {

     .
     .

"messages" : {
         "msg" : {
            "$messageID" :{
                ".read" : "data.child('toId').val() == auth.uid",
                ".write": "data.child('fromId').val() == auth.uid"
                          }

                 }
             }
        }

而且,你所问的是非常基本的。所以,我真的建议您仔细阅读Firebase规则。

谢谢!,当我观察到
queryOrdered(byChild:“toId”).queryEqual(toValue:user?.uid)
时,我的权限被拒绝,所以只有当它的
”时,观察才起作用。阅读:“auth!==null&&auth.provider=='password'”
我正试图这样做是为了更安全,可能会减少数据下载,我不知道有什么想法?@Sam你的数据结构很好。问题是Firebase规则是从下到上,而不是从下到上。此外,Firebase规则不能用于筛选查询。我真的建议你检查一下关于规则的文档。你会更了解这一切的!