【问题标题】:Firebase storage rules, `request.resource.md5hash` is nullFirebase 存储规则,`request.resource.md5hash` 为空
【发布时间】:2017-01-25 14:55:48
【问题描述】:

我正在尝试使用 FireBase 后端构建一个 Web 应用程序,并且我的存储规则如下:

service firebase.storage {
  match /b/stuff.appspot.com/o {
    match /images/{fname}
    {
      allow read: if true;
      allow write: if request.resource.md5hash != null;
    }
  }
}

但是,当我尝试将数据放入 images/filename 时,我收到了 storage/unauthorized 错误。如果我删除条件并设置为 true,它会按预期工作,因此我认为 request.resource.md5hash 为空。

我错过了什么?因为我希望任何文件都具有非空 md5 哈希。

补充说明:

  • 如果我去掉md5条件,不做任何检查就上传文件,我可以在上传文件的客户端中得到md5Hash。因此,实际上是在某个时间点计算哈希值。
  • the reference about storage rules md5hash 字段中使用,所以它应该工作。

【问题讨论】:

    标签: firebase firebase-security firebase-storage


    【解决方案1】:

    两件事:

    1. 该属性实际上是md5Hash(我们的参考文档有误,我刚刚修复了它们)
    2. md5Hash 目前没有传递到规则中(是的,这是一个错误,我们现在正在修复它,尽管它需要一些时间才能投入生产)

    我们正在努力通过 MD5,所以请抓紧 :)

    【讨论】:

    • 我在问这个问题之前尝试过md5Hash,但也没有用,因为文档同时使用了这两种方法,我认为字段不区分大小写。感谢您的帮助!
    • 不,它们区分大小写。抱歉这个问题:(
    • 可以在数据库规则中使用md5Hash吗?
    • @okwme 不,因为数据库中的 JSON 没有经过哈希处理
    猜你喜欢
    • 2017-08-11
    • 2021-01-03
    • 2020-11-28
    • 2017-06-16
    • 2021-06-10
    • 1970-01-01
    • 2021-09-29
    • 2018-08-03
    相关资源
    最近更新 更多