【问题标题】:How to upgrade to firebase storage rules v2如何升级到 Firebase 存储规则 v2
【发布时间】:2020-07-05 21:51:02
【问题描述】:

今天,当我尝试更新我的 Firebase 存储规则时,我收到了一条关于升级它们的消息。我该怎么做?

i  deploying storage
i  firebase.storage: checking storage.rules for compilation errors...
⚠  [W] undefined:undefined - Ruleset uses old version (version [1]). Please update to the latest version (version [2]).
✔  firebase.storage: rules file storage.rules compiled successfully
i  storage: uploading rules storage.rules...
✔  storage: released rules storage.rules to firebase.storage

我的规则如下所示:

service firebase.storage {
    match /b/{bucket}/o {
        match /user-files/{uid}/{allPaths=**} {
            allow read: if resource.metadata[request.auth.uid] == "1";  // the uploading user can get a downloadURL
            allow create, update: if request.auth.uid == uid // User can only upload to the users own folder
                && request.auth.token.storageLeft >= request.resource.size
                && request.auth.token.path == request.resource.name
            allow delete: if false; // files are only deleted by cloud functions
        }
    }
}

【问题讨论】:

    标签: firebase-storage firebase-security


    【解决方案1】:

    要将您的规则切换到版本 2,请在顶部添加以下行:

    rules_version = "2";
    

    要了解有关新版规则语言的更多信息,请参阅getting started 上的文档。

    【讨论】:

    • 到顶部什么?
    • 好一个@zelig74,我也将该链接添加到答案中。
    • 答案和 cmets 中的链接都指向 firestore 文档,但警告和问题是针对 storage 的。我在存储文档中没有看到任何关于规则版本 2 的内容。任何关于存储规则 v2 中预期变化的参考?
    • 啊,这确实是错误的链接。谢谢你抓。不过,这些步骤对于 Storage 来说是正确的,因为语言语法和解析器在 Storage 和 Firestore 之间共享。所以:将我的答案中的行添加到您的存储规则中,它将使用新的 v2 语法(并允许列表操作)。
    猜你喜欢
    • 2017-08-11
    • 2019-05-07
    • 1970-01-01
    • 2021-01-03
    • 2020-11-28
    • 2017-06-16
    • 1970-01-01
    • 2021-03-28
    相关资源
    最近更新 更多