【发布时间】:2021-07-14 00:19:23
【问题描述】:
Firesbase 存储安全规则允许更新不起作用,无法防止文件覆盖。
示例规则:
match /test/{userId}/{imageId} {
allow create: if request.auth.uid == userId;
allow update: if false;
}
这里我只允许经过身份验证的用户“创建”文件,但不能更新/覆盖。
预期行为:不应允许更新/覆盖现有文件。
实际行为:当我再次上传不同的文件,但文件名相同时{覆盖现有文件},则允许更新/覆盖。
如何防止文件更新?
【问题讨论】:
-
您共享的规则中没有任何内容可以防止覆盖现有文件。为此,您需要检查是否存在如下所示的现有资源:stackoverflow.com/questions/38995011/…
-
哦,等等,我现在看到您已拆分
create和update。嗯...我从来没有在 Storage 上这样做过,只有在 Firestore 上。但看起来这也适用于存储:firebase.google.com/docs/storage/security/…,所以我不确定你出了什么问题。 -
@FrankvanPuffelen 是的,我使用了粒度操作,将
create和update分开。我也用firestore检查过这个,它可以工作,但存储不起作用。
标签: firebase firebase-storage firebase-security