您好我正在使用Firebase云存储来开发Web应用程序。我想设置不同的安全规则来设置文件从删除文件。根据该文件,似乎write
包括它们。有谁知道如何解决这个问题?
我想做的就是这个。
答案 0 :(得分:3)
您可以在规则中检测到正在使用request.resource == null
删除文件。
但是文件对象(我知道)中没有属性可以知道谁创建了该文件。
一种常见的方法是将文件存储在标识其创建者的路径下,例如: /users/$uid/filename
。使用该结构,您可以这样检查:
match /users/{userId}/profilePicture.png {
allow read;
allow write: if request.auth.uid == userId && request.resource == null;
}
另一种方法是将owner
属性添加到每个文件的元数据中,然后检查:
match /{fileId} {
allow read;
allow write: if (request.auth.uid == resource.metadata.owner && request.resource == null);
}