Я использую Redux-Saga в качестве промежуточного программного обеспечения. Я передаю параметр с помощью запроса в базу данных Firebase, но не могу получить к нему доступ в конце базы данных.
Запрос :::
database.ref("workouts")
.child(userId)
.once("value")
.then(snapshot => {
console.log("onSuccess:", snapshot.ref, snapshot.val());
resolve(snapshot.val());
})
.catch(function(error) {
console.log("Error fetching document: ", error);
reject(error);
});
UserId - это значение, которое я извлекаю из localStorage и отправляю в базу данных с помощью запроса, используя ".child (userId)"
Запрос ::: (для администратора)
database.ref("workouts")
.once("value")
.then(snapshot => {
console.log("onSuccess:", snapshot.ref, snapshot.val());
resolve(snapshot.val());
})
.catch(function(error) {
console.log("Error fetching document: ", error);
reject(error);
});
Правила в базе данных ::::
{
"rules": {
"workouts": {
// grants write access to the owner of this user account || the user role is equal to admin
// grants read access to the owner of this user account || the user role is equal to admin
".read":"(data.exists() && auth.uid != null && data.child(auth.uid).exists()) ||root.child('users').child(auth.uid).child('role').val() == 'admin'",
".write":"data.exists() ||root.child('users').child(auth.uid).child('role').val() == 'admin'"
}
}
}
Я пытался получить доступ к значению, используя методы [query.equalTo] и [data.child (auth.uid) .val ()], но не получил никакого результата.
JSON для тренировок :::::
"workouts" : {
"6OiasllKwVSjjRfrCarMAjhkKAH2" : {
"-LD3nNIKw9Yk3HcoAL0-" : {
"exercises" : [ {
"muscleGroup" : "Chest",
"name" : "Incline Dumbbell Fly",
"sets" : [ 0, 0, 0, 0, 0 ],
"type" : "reps"
} ],
"name" : "Force Set",
"reps" : [ "5", "5", "5", "5", "5" ],
"type" : "Weights"
}]
},
"workoutName" : "My Test workout"
}
JSON для пользователей :::::
"users" : {
"6OiasllKwVSjjRfrCarMAjhkKAH2" : {
"email" : "testuser@gmail.com",
"role" : "user",
"uid" : "6OiasllKwVSjjRfrCarMAjhkKAH2"
}
}
Любая помощь высоко ценится.
Большое спасибо заранее.
Edit :::: Добавлен запрос для администратора. Я хочу получить все доступные данные в коллекции в случае администратора.