Firebase自定义声明为列表+安全规则

时间:2020-06-21 14:13:00

标签: firebase firebase-authentication firebase-storage firebase-security

我正在考虑以下安全规则+自定义声明的结构:

auth.token.buckets = ['bucket1', 'bucket2', 'bucket3']

安全规则如下:

allow read if storage/{$bucket} is in auth.token.buckets

有可能吗?如果是这样,正确的语法是什么?

1 个答案:

答案 0 :(得分:1)

那确实有可能。

  • 正确的运算符是in,因为您的令牌包含list个密钥。
  • 引用存储桶的正确方法是使用bucket,而不使用${}

因此总规则可能类似于:

service firebase.storage {
  match /b/{bucket}/o {
    match /{path=**} {
      allow read: if bucket in auth.token.buckets;
    }
  }
}

请注意,您必须将存储桶的全名存储在令牌中,因此类似your-project-name.appspot.com