【问题标题】:Changing Firebase Database Rules from Application从应用程序更改 Firebase 数据库规则
【发布时间】:2018-03-11 15:12:26
【问题描述】:

是否可以从我的应用程序中更改 Firebase 数据库规则。 所以,我有一个带有 photoURL 和名称的用户。现在我想让用户选择,是否可以看到他的 photoURL。或者只有他的联系人或任何人。我认为实现这一点的最佳方法是更改​​规则,因此只有用户联系人可以读取保存 photoURL 的数据。 如果它甚至可能......我怎么能做到这一点。如果没有,还有其他方法吗?

【问题讨论】:

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


    【解决方案1】:

    没有 API 可以更改您的数据库安全规则。但是您可能可以以允许用例的方式编写您的安全规则。例如。假设您将用户的联系人与他们的共享设置存储在数据库中:

    contacts: {
      user8633311: {
        user:209103: true,
        user1234567: true
      },
      user209103: {
        user8633311: true
      }
      user1234567: {
        user:209103: true
      }
    },
    sharing: {
      user8633311: true,
      user209103: false,
      user1234567: false
    }
    

    现在您可以通过以下方式保护对用户的photos 节点的访问:

    {
      "rules": {
        "photos": {
          "$uid": {
            ".read": "
              auth.uid == $uid || (
                root.child('contacts').child($uid).child(auth.uid).val() === true &&
                root.child('sharing').child($uid).val() === true
              )
            "
          }
        }
      }
    }
    

    使用这些规则,您可以让您的用户控制共享,而无需不断重新部署安全规则。

    【讨论】:

    • 总是很惊讶这不是更直观。想知道我们可以做些什么来改进这方面的规则。
    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 2017-07-15
    • 2017-09-22
    • 1970-01-01
    • 2020-11-03
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多