我有一个非常简单的Firebase存储结构:
> check-in-station-content
> reports
这是两个文件夹,我正在尝试对check-in-station-content设置限制,以仅接受不超过30MB的视频/ mp4文件,并且仅由经过身份验证的各方上载。因此,我的规则如下所示:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read: if request.auth != null;
}
match /check-in-station-content {
// Allow write files, subject to the constraints:
// 1) File is less than 30MB
// 2) Content type is video/mp4
match /{videoId} {
allow write: if request.auth != null && request.resource.size < 30 * 1024 * 1024 && request.resource.contentType.matches('video/mp4')
}
}
}
}
然后,当我进入用于存储的UI并单击Upload按钮时,没有什么阻止我上传具有任何大小的任何文件
使用Firebase控制台时,实际上您会绕过所有安全规则,因为您是以项目所有者(或具有类似访问权限的另一个角色,例如编辑器)的身份与Cloud Firestore进行交互。这些规则仅在使用客户端SDK之一或其他客户端API时适用。
顺便说一下,请注意您的规则与check-in-station-background-content
路径匹配,但与check-in-station-content
路径不匹配。