Как получить доступ к базе данных реального времени в правилах безопасности хранилища в firebase, чтобы проверить, входит ли пользователь в группу для особых привилегий? - PullRequest
0 голосов
/ 14 мая 2018

У меня есть список существующих пользователей в firebase.

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

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

база данных:

{ 
   users: { 
    $uid: { hasFullAccess: boolean}
   } 
}

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

service firebase.storage {
  match /b/{bucket}/o {        
    match /files-demo/{allDirPaths=*} {
      allow read: if true
    }

    match /files-complete/{allDirPaths=*} {
      allow read: if request.auth != null && // (users have full access?)
    }
  }
}

Если это возможно, как я могу ссылаться на свою базу данных в правилах хранения Firebase?

1 Ответ

0 голосов
/ 14 мая 2018

Нельзя ссылаться на значения из базы данных реального времени (или Firestore) из правил облачного хранилища. В настоящее время каждая из этих систем правил полностью независима друг от друга.

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

...