首页 > 解决方案 > 用于安全访问的存储文件上传的其他参数 - Firebase

问题描述

我正在使用以下代码将文件上传到我的 Firebase 存储:

storageRef.child('docs/docName').put(file, metadata);

其中 file 是一个 js 文件文档,元数据如下所示:

{
  customMetadata: {
    test: "check"
  }
}

出于安全原因,我有必要定义:

 match /docs/{doc} {
        allow read, write: if request.resource.metadata.test == 'check';
    }

但这不起作用。不知道为什么:/

当我将规则更改为:

 match /docs/{doc} {
        allow read, write: if true;
    }

然后文件正确上传。

我也尝试过根据文档使用参数(https://firebase.google.com/docs/storage/security/rules-conditions

storageRef.child('docs/docName?test="check"').put(file, metadata);

有规则:

 match /docs/{doc} {
        allow read, write: if request.params.test == 'check';
    }

但它不起作用。

最搞笑的是:

 match /docs/{doc} {
        allow read, write: if request.resource == null;
    }

匹配 /docs/{doc} { 允许读取,写入:如果 request.resource != null; }

两者都不像请求一样工作。资源不可用......

出于安全原因,我如何发送一些附加参数?

标签: javascriptfirebasegoogle-cloud-platformfirebase-storagefirebase-security

解决方案


推荐阅读