2

Я пытаюсь ограничить хранение firebase на основе роли пользователя.Есть ли способ аутентифицировать роль пользователя в правилах хранения firebase?

Database: 
    users 
     <uid> 
      admin=false 
      ... ... ... 

Я пытаюсь использовать следующий вид правила в firebase хранения:

root.child('users').child(auth.uid).child('user').child('admin').val() == true 

Я получаю доступ запрещен после добавления этого к правилу записи.

Спасибо.

+0

Правила безопасности Firebase хранения не может ссылаться на данные в базе данных. См. [Этот ответ] (http://stackoverflow.com/questions/38188459/create-group-access-to-firebase-storage-without-using-custom-authorization) или [этот] (http: // stackoverflow. com/questions/38157858/firebase-storage-whats-the-proper-rules-for-user-based-uploading-deleting) для способов сделать что-то вроде защиты на основе ролей. –

+0

Спасибо, Фрэнк. Его немного взломано, но я думаю, что все, что я могу сделать сейчас. – Ahsan

ответ

3

Как Франк ван Puffelen отметил в своем комментарии:

function isAdminUser() { 
    return request.auth.uid in { 
     "yaddayadddayaddUserIDKey":"User Name1" 
    }; 
} 

service firebase.storage { 
    match /b/<appName>.appspot.com/o { 
     match /{allPaths=**} { 
      allow read; 
      allow write: if request.auth != null && isAdminUser(); 
     } 
    } 
} 
+1

Функция администратора является жестко заданной величиной. Это единственный вариант? – kernowcode

+0

К сожалению, это все, что есть на данный момент. – Ahsan