Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase realtime database 允许其他用户读取/写入Firebase数据库中的数据_Firebase Realtime Database_Firebase Security - Fatal编程技术网

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(“共享”)部分。非常感谢。