Firebase-允许用户基于数据库信息访问数据库的各个部分

时间:2018-07-13 17:35:53

标签: javascript firebase firebase-realtime-database firebase-security-rules

我知道如何为用户提供使用其UID的数据库部分的读/写访问权限,但是我想做的事情有些复杂,但是我不知道该怎么做。如果我有这样的数据库结构:

  • 用户:

    • oixMNpuyaaTTntNVl17MC74wL8e2:

      • 访问:
        • 某些名称:“某些值”
        • 某些其他名称:“其他一些值”
  • 东西
    • 一些名字
      • 信息:“更多信息”
      • InformationMore:“更多信息”

在这种情况下,我需要用户oixMNpuyaaTTntNVl17MC74wL8e2才能访问Some Name下的所有数据,该数据在数据库的其他位置指定。我希望我能够正确解释我的问题,并且有可能!另外,将Some Name的{​​{1}}子级设置为Stuff也是不可行的,因为其他用户也可能有权访问oixMNpuyaaTTntNVl17MC74wL8e2

注意:我同时使用Firebase Web和Admin,同时使用Python(Flask)和JavaScript。

1 个答案:

答案 0 :(得分:4)

我在理解您的问题时遇到了一些麻烦,如果这不是您要查找的内容,请编辑您的问题并更深入地解释您要查找的内容。

如果要将访问权限限制为仅在“用户”表下授予该访问权限的用户,则可以编写一个规则来查找该用户下的“某些名称”权限。该规则将适用于您应用的所有用户,因此任何被授予访问权限的用户都可以访问该数据。

您的规则如下:

{
  "rules": {

    "Stuff": {
      "$someName": {
        ".read": "root.child('Users').child(auth.uid).child('accesTo').val() == $someName"
      }
    },

    // ...etc... other rules for other tables in your database

}

in the documentation这类例子很多。