Firebase如何为特定用户授予读取权限
JSON如下所示:Firebase如何为特定用户授予读取权限,firebase,firebase-security,Firebase,Firebase Security,JSON如下所示: "messages" : { "msg" : { "-Kr2Qb93tM7yP-J7zuAq" : { "text" : "hello", "toId" : "EeLIxkOEfhMUlsM8WGnHdgeT8xW2", "fromId" : "IxfnlsekOh8WEG2HdgMUMWT8xEeL" } } } 如果“toId”的值
"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规则不能用于筛选查询。我真的建议你检查一下关于规则的文档。你会更了解这一切的!