Firebase Cloud Storage правило безопасности для удаления
Привет, я использую Firebase Cloud Storage для разработки веб-приложений. Я хотел бы установить различные правила безопасности для установки файла от удаления файла. Кажется, что write
включает в себя оба в соответствии с документом. кто-нибудь знает, как решить эту проблему?
То, что я хотел бы сделать, это.
- Любой может установить файл, если он вошел в систему.
- Только пользователь, который установил файл, может удалить его.
1 ответ
Вы можете обнаружить, что файл удаляется с 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);
}