В чем разница между правилами Firestore и правилами Firestorage? - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть файлы, которые я хочу сохранить в безопасности, после того как администратор загрузит файл в хранилище, только он и пользователь, с которым он делится файлом, получат доступ к ссылкам для загрузки этого файла. Следовательно, в правилах пожарного магазина я добавил следующее:

match /users/{userID} {
  		allow read: if isOwner(userID) || isAdmin();
  		allow write: if isOwner(userID) || isAdmin();
		}
    
    /// FUNCTIONS BELLOW ///
    
    function isAdmin() {
     return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.IsAdmin;
    }

Однако когда я пытался добавить те же правила в Firestorage, доступ постоянно отказывался.

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read: if isAdmin();
  		allow write: if isAdmin();
    }
    
     /// FUNCTIONS BELLOW ///
    
    function isAdmin() {
     return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.IsAdmin;
    }
  }
}

Метод get Firestorage работает иначе, чем метод get Firestore? Любая помощь будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Полагаю, вы говорите о Firebase Cloud Storage и Firestore

Проблема с вашими правилами Cloud Storage заключается в том, что вы не можете получить доступ к базе данных Firestore.Если вам нужно перенести данные, чтобы помочь с авторизацией записи, вы можете посмотреть пользовательских утверждений , к которым вы можете получить доступ с помощью auth.token.admin === true в ваших правилах безопасности, например, которые проверяют токен пользователя для свойства admin

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read: if isAdmin();
      allow write: if isAdmin();
    }

    /// FUNCTIONS BELLOW ///

    function isAdmin() {
      return auth.token.admin === true
    }
  }
}
0 голосов
/ 15 ноября 2018

Нет Firestorage Rules, на самом деле есть правила для Cloud Firestore , который является новой базой данных от Google, Firebase Storage , который используется для хранения изображений, аудио, видео, или другой пользовательский контент и база данных Fireabse в реальном времени , которая также является базой данных NoSQL.

Правила безопасности обеспечивают контроль доступа и проверку данных в простом, но выразительном формате.

Правила безопасности хранилища используются для определения того, кто имеет права на чтение и запись для файлов, хранящихся в облачном хранилище, а также как структурированы файлы и какие метаданные они содержат.

Правила работы с базами данных Firebase Realtime определяют, кто имеет доступ к вашей базе данных для чтения и записи, как структурированы ваши данные и какие существуют индексы. Эти правила действуют на серверах Firebase и всегда применяются автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...