【发布时间】:2019-05-07 10:01:38
【问题描述】:
我想知道存储规则部署在 Firebase 中的工作原理。
在 Firebase 存储中,我有 2 个存储桶 app.appspot.com 和 app-mybucket。在我的本地机器上,我有一个 storage.rules 文件,看起来像这样:
service firebase.storage {
match /b/app.appspot.com/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
match /b/app-mybucket/o {
match /{userId}/{allPaths=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
当我firebase deploy --only storage 这些规则被发送到默认的app.appshpot.com 存储桶时,似乎没有任何东西被发送到app-mybucket。我想知道一种可以将规则部署到所有存储桶的方法。
【问题讨论】:
-
您观察到什么表明规则没有按照您期望的方式部署?您是否真的尝试过使用验证它们工作的客户端代码来测试它们?
-
不,我没有尝试测试它们,因为我查看了 Firebase 控制台,
app.appshpot.com的规则被storage.rules规则覆盖,app-mybucket规则未被触及并没有反映storage.rules中写的内容 -
您能否验证另一个存储桶上的规则实际上并没有按照您的预期方式工作(使用您编写的客户端代码),即使控制台看起来不像您预期的那样?
-
我尝试了一堆组合来检查是否真的是上传的规则有影响,看起来是的,控制台正在显示实际规则。
标签: firebase firebase-storage firebase-security firebase-cli