有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使Firebase数据为公众可读?

目前正在创建一个笔记应用程序,我想在其中添加共享功能。我想让用户能够共享默认情况下对其他用户私有的便笺

我是一个noob,所以我不太确定如何实现这一点,但我现在想的是,通过编程将共享的便笺的读取安全规则从auth.uid == $uid更改为true,然后生成指向该便笺的链接供用户共享,以便每个人都可以查看它。但我认为这是不可能的


共 (1) 个答案

  1. # 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()
    

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