如何访问firebase中的存储安全规则中的实时数据库,以验证用户是否在特殊权限组中?

时间:2018-05-14 05:13:23

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

我在firebase中有一个现有用户列表。

我的存储文件只能发送到“hasFullAccess”组中的用户才能访问所有存储文件。

由于我们无法添加到用户对象,因此我已将每个用户添加到数据库中,以便为其提供额外的元数据。

数据库:

{ 
   users: { 
    $uid: { hasFullAccess: boolean}
   } 
}

现在,在存储规则中,我希望允许具有完全访问权限的用户访问完整内容。

service firebase.storage {
  match /b/{bucket}/o {        
    match /files-demo/{allDirPaths=*} {
      allow read: if true
    }

    match /files-complete/{allDirPaths=*} {
      allow read: if request.auth != null && // (users have full access?)
    }
  }
}

如果可以,我如何在firebase存储规则中引用我的数据库?

1 个答案:

答案 0 :(得分:0)

您无法从云存储规则中引用实时数据库(或Firestore)中的值。目前,这些规则系统中的每一个都完全相互独立。

然而,您可以执行的操作是编写云功能代码,以响应每个产品中的更改,这些更改还可以访问其他产品以检查值是否一致。对此主题的全面探索,以及如何以这种方式有效地使用云功能,超出了Stack Overflow答案的范围。