创建firebase规则以授予对所有者的写入权限以及对提供的电子邮件的读取权限

时间:2017-01-25 19:15:56

标签: android firebase firebase-realtime-database firebase-security

我有如下的数据结构,如果需要实现我的目标,我准备重新构建。 我希望所有者能够在" sharedWithEmail"中找到或写入具有邮件ID的用户。能够阅读清单的关键。

"root_node" : {
  "firebaseUid1" : {
    "-Kb5L4zvfgscWdDC9utF" : {
      "data1" : 1,
      "data2" : "abcd",
      "sharedWithEmail" : "abc@gmail.com",
      "userMail" : "user1@gmail.com"
    },
    "-Kb5sddvfgscWdDC9utF" : {
      "data1" : 2,
      "data2" : "abcd",
      "sharedWithEmail" : "123@gmail.com",
      "userMail" : "user1@gmail.com"
    },
    "-Kb5sddvfgscWdDC9utF" : {
      "data1" : 3,
      "data2" : "abcd",
      "sharedWithEmail" : "blabla@gmail.com",
      "userMail" : "user1@gmail.com"
    }
  }
  {
  "firebaseUid2" : {
    "-Kb5L4zvfgscWdDC9utF" : {
      "data1" : 1,
      "data2" : "abcd",
      "sharedWithEmail" : "1@gmail.com",
      "userMail" : "user2@gmail.com"
    },
    "-Kb5sddvfgscWdDC9utF" : {
      "data1" : 2,
      "data2" : "abcd",
      "sharedWithEmail" : "1@gmail.com",
      "userMail" : "user2@gmail.com"
    },
    "-Kb5sddvfgscWdDC9utF" : {
      "data1" : 3,
      "data2" : "abcd",
      "sharedWithEmail" : "b2@gmail.com",
      "userMail" : "user2@gmail.com"
    }

1 个答案:

答案 0 :(得分:1)

在您当前的结构中,您可以测试用户是否有权访问特定帖子,因为它已与其电子邮件共享:

dendextend

但是使用这种结构,无法测试用户是否可以访问特定用户的所有帖子,因为您无法搜索以查找定义安全规则的路径下的节点。