我有一个像这样的数据库树
users
-UID
--items
---all the data
我想在UID下添加一些像shared:another-UID的东西,并允许其他UID读取和写下项目下的所有内容。
例如:
users
-UID
--shared:different_UID
--items
---all the data
我目前的规则是这样的
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
}
}
}
我如何更改规则以允许此操作?
在这种情况下,您的规则将成为:
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && (auth.uid == $uid || data.child('shared').val() === auth.uid)",
".write": "auth != null && (auth.uid == $uid || data.child('shared').val() === auth.uid)"
}
}
}
}
换言之:如果密钥与用户ID相同,或者用户ID存储在数据下的shared
属性中,则用户可以读取/写入此数据。