如何让公众可以阅读Firebase数据?

时间:2016-01-11 10:43:07

标签: java firebase firebase-security

目前正在制作笔记记录应用,我想在其中添加分享功能。我想让用户默认共享一个私有的注释给其他用户。

我是noob,所以我不太确定如何实现这一目标,但我现在想到的是以编程方式更改将从{{1}共享的笔记的读安全规则}到auth.uid == $uid然后生成该笔记的链接供用户共享,以便每个人都可以查看。但我相信这是不可能的。

1 个答案:

答案 0 :(得分:1)

您可以为共享笔记创建白名单。

{
   "notes": {
      "0": {
         "text": "I like taking notes.",
         "uid": "user_1"
      }
   },
   "sharedNotes": {
      "0": {
         "user_1": true,
         "user_2": true
      }
   }
}

然后,在您的规则中,您可以验证用户必须存在于/sharedNotes中才能使读取成功。

{
   "rules": {
      "notes": {
         "$noteId": {
            ".read": "data.root().child('sharedNotes').child($noteId).child(auth.uid).exists()"
         }
      }
   }
}

让我们打破这条规则:

data.root().child('sharedNotes').child($noteId).child(auth.uid).exists()

转到root,转到/sharedNotes路径,找到$noteId中的注释,然后查看当前用户(auth.uid)是否存在于白名单中。