Firebase Cloud Storage правило безопасности для удаления

Привет, я использую Firebase Cloud Storage для разработки веб-приложений. Я хотел бы установить различные правила безопасности для установки файла от удаления файла. Кажется, что write включает в себя оба в соответствии с документом. кто-нибудь знает, как решить эту проблему?

То, что я хотел бы сделать, это.

  1. Любой может установить файл, если он вошел в систему.
  2. Только пользователь, который установил файл, может удалить его.

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);
}
Другие вопросы по тегам