Я работаю над контакт-приложением для Android с FireBase и хочу прочитать значения (здесь: профиль пользователя) от пользователя в моей базе данных, который соответствует указанному адресу электронной почты.
Я пыталсячтобы создать запрос, как показано в этом ответе: https://stackoverflow.com/a/39025129/8739722, но проблема в том, что я не знаю, как применить это к моей структуре базы данных, так как у меня есть другой дочерний элемент (профиль) в моей пользовательской структуре.
Мои узлы выглядят так:
Мои правила выглядят так:
{
"rules": {
"users": {
"$uid": {
"profile": {
".read": "auth.uid != null",
".write": "auth.uid == $uid",
},
//...
},
}
Я пытался сделать запрос следующим образом:
String email = "email_address_1";
Query q_1 = ref.child("users").child("profile").orderByChild("email").equalTo(email);
..., приводящий к ошибке «Отказано в доступе».
Я также рассмотрел следующие запросы, но у них неправильный синтаксис или попытка выполнить несколько вызовов orderByChild, что недопустимо:
String email = "email_address_1";
Query q_2 = ref.child("users").orderByChild("profile").child("email").equalTo(email);
Query q_3 = ref.child("users").orderByChild("profile").orderByChild("email").equalTo(email);
Как я могу получить информацию о профиле пользователя с соответствующим адресом электронной почты?