Firebase realtime database 允许其他用户读取/写入Firebase数据库中的数据
我有一个这样的数据库树Firebase realtime database 允许其他用户读取/写入Firebase数据库中的数据,firebase-realtime-database,firebase-security,Firebase Realtime Database,Firebase Security,我有一个这样的数据库树 users -UID --items ---all the data 我想在UID下面添加一些东西,比如shared:otheruid,并允许另一个UID读取和写入items下的所有内容 例如: users -UID --shared:different_UID --items ---all the data 我现在的规则是这样的 { "rules": { "users": { "$uid": { ".read": "aut
users
-UID
--items
---all the data
我想在UID下面添加一些东西,比如shared:otheruid,并允许另一个UID读取和写入items下的所有内容
例如:
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存储在数据下的
共享属性中,则用户可以读取/写入此数据。在这种情况下,您的规则将变为:
{
"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
属性中,则用户可以读取/写入此数据。不太清楚您在这里试图实现什么。也许您可以通过显示一个当前不允许的特定查询来说明,在给定一些新约束的情况下,您希望允许该查询。请选中“编辑”。我已经阅读了安全规则,但不太了解如何正确设置它们。目前,UID下的所有内容仅限于该UID。我想添加另一个UID来查看和编辑所有受当前规则限制的正常数据。我知道我需要添加一个| |并引用共享UID值。但是我不知道如何在规则中引用它。我不太清楚你在这里想要实现什么。也许您可以通过显示一个当前不允许的特定查询来说明,在给定一些新约束的情况下,您希望允许该查询。请选中“编辑”。我已经阅读了安全规则,但不太了解如何正确设置它们。目前,UID下的所有内容仅限于该UID。我想添加另一个UID来查看和编辑所有受当前规则限制的正常数据。我知道我需要添加一个| |并引用共享UID值。但我不知道如何在规则专区中引用它。我认为在这种情况下,唯一的障碍是找出data.child(“共享”)部分。谢谢你,太好了。我认为在这种情况下,唯一的障碍是找出data.child(“共享”)部分。非常感谢。