我正在考虑以下安全规则+自定义声明的结构:
auth.token.buckets = ['bucket1', 'bucket2', 'bucket3']
安全规则如下:
allow read if storage/{$bucket} is in auth.token.buckets
有可能吗?如果是这样,正确的语法是什么?
答案 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