用于删除的Firebase云存储安全规则
您好,我正在使用Firebase云存储开发web应用程序。我想为设置文件和删除文件设置不同的安全规则。根据文档,用于删除的Firebase云存储安全规则,firebase,firebase-storage,firebase-security,Firebase,Firebase Storage,Firebase Security,您好,我正在使用Firebase云存储开发web应用程序。我想为设置文件和删除文件设置不同的安全规则。根据文档,write似乎包括了这两个方面。有人知道如何解决这个问题吗 我想做的就是这样 任何人都可以设置文件,如果他们是loggedin 只有设置该文件的用户才能将其删除 您可以通过规则中的request.resource==null检测到正在删除文件 但是,据我所知,文件对象中没有任何属性可以知道是谁创建了该文件 一种常见的方法是将文件存储在标识其创建者的路径下,例如/users/$uid/f
write
似乎包括了这两个方面。有人知道如何解决这个问题吗
我想做的就是这样
您可以通过规则中的
request.resource==null
检测到正在删除文件
但是,据我所知,文件对象中没有任何属性可以知道是谁创建了该文件
一种常见的方法是将文件存储在标识其创建者的路径下,例如/users/$uid/filename
。使用该结构,您可以如下检查:
match /users/{userId}/profilePicture.png {
allow read;
allow write: if request.auth.uid == userId && request.resource == null;
}
另一种方法是向每个文件的元数据添加所有者属性,然后检查:
match /{fileId} {
allow read;
allow write: if (request.auth.uid == resource.metadata.owner && request.resource == null);
}
云函数没有安全规则。只有云存储、云Firestore和实时数据库具有针对客户端应用程序实施的安全规则。使用AdminSDK的云函数绕过了这些规则。感谢您的回复。在标题中写云函数是我的错误。我编辑了标题。我想问一下云存储。太好了!通过提供两个ifs,您可以制定从创建和更新中删除的单独规则。我将尝试这种方法。