【问题标题】:Firebase Storage Rules - access granted doesn't match rulesFirebase 存储规则 - 授予的访问权限与规则不匹配
【发布时间】:2020-08-15 11:46:20
【问题描述】:

这是我的规则:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{country}/{type}/{allPaths=**} {
      allow read, write;
    }
  }
}

出于某种原因,我可以在此路径中读写:child(Test).child("Image.jpg"),但不应该这样。我应该只能在这条路径上读写child(Test).child(Test2).child("Image.jpg")

Test 和 Test2 都是变量。

我错过了什么吗?

【问题讨论】:

    标签: android firebase firebase-storage firebase-security


    【解决方案1】:

    它按我预期的那样工作。在安全规则版本 2 中,递归通配符 (allPaths=**) 匹配 0 个或多个路径段。因此,您的规则与 country=Testtype=Image.jpg 匹配,而 allPaths 没有任何匹配项。

    如果您只需要两个路径段,则必须完全去掉 allPaths 通配符。或者,考虑调用特定的顶级路径组件而不是通配符。

    【讨论】:

    • 我想我明白了,我用我的新闻规则编辑了这个问题,你能检查它是否正常吗?
    • 再次,您已经更改了问题,这实际上使我的答案无效。现在看来,您必须使用它才能最好地了解它的工作原理,并确定您对安全规则的要求。我怀疑通配符并不是你真正想要的。不过,我认为您确实了解它的工作原理 - 您并不需要我的验证。
    • 如果您的跟进时间很短,您可以像这里一样回复答案。
    • 对不起,多亏了你我现在明白了。感谢您的帮助,感谢您提供有关堆栈溢出的提示
    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 2021-07-06
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多