用于删除的Firebase云存储安全规则

时间:2018-06-19 02:33:26

标签: firebase firebase-storage firebase-security-rules

您好我正在使用Firebase云存储来开发Web应用程序。我想设置不同的安全规则来设置文件从删除文件。根据该文件,似乎write包括它们。有谁知道如何解决这个问题?

我想做的就是这个。

  1. 任何人都可以在登录时设置文件。
  2. 只有设置文件的用户才能删除它。

1 个答案:

答案 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);
}