javascript - 用于安全访问的存储文件上传的其他参数 - 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; }
两者都不像请求一样工作。资源不可用......
出于安全原因,我如何发送一些附加参数?
解决方案
推荐阅读
- mysql - Data Nucleus:JDO - 能够在 H2 和 MongoDB 中自动创建表,但当我尝试使用 MySQL 运行时似乎不起作用
- c - 查找未定义的 gpio 编号的问题是树莓派 3
- proxy - 创建 React App v2 高级代理功能不起作用
- android - 根据特定用户偏好删除回收站项目
- python - 请求:来自 scipy.spatial 的 cKDTree
- javascript - Node.js:我正在努力将回调函数的结果存储到字典变量中
- ios - 在按钮目标 Swift 的选择器方法中更改两个对象
- sql - 如何在 C# 中完全外连接或连接最多 6(六)个 SQL Server 数据库表?
- swift - GIDSignInDelegate 的问题,尽管添加了符号功能,但仍无法符合它
- ios - ActionSheet 以不正确的颜色呈现