У меня есть несколько условий в моих правилах firebase, и я хочу получить доступ к базе данных текущего пользователя, используя оператор if в моем операторе return. Когда я обращаюсь к нему по отдельности, он работает, но когда я использую операторы if, я не получаю данные, но возникает ошибка разрешения.
Я пытался получить к нему доступ, но продолжает сбой.
Мое правило:
"query.orderByChild == 'userId' && query.equalTo == auth.uid ||
root.child('admins').child(auth.uid).child('role').val() === 'admin'"
Доступ к данным:
let db = firebase.database().ref(`/items`).orderByChild('userId').equalTo(currentUser.uid)
if(firebase.database().ref('/admins').child(currentUser.uid).child('role').equalTo('admin')) {
db = firebase.database().ref(`/items`)
}
db
.once('value')
.then(snapshot => {
let doc = []
const data = snapshot.val();
for (let key in data) {
doc.push({
...data[key],
key: key
});
}
В идеале я хотел бы иметь правило с OR и оператор if / else для возврата данных в зависимости от пользователя.