При регистрации новых пользователей типа электронной почты/паролей мне нужно сделать, чтобы введенный вами displayName
не существует в моей базе данных реального времени, прежде чем звонить .createUserWithEmailAndPassword
. Поэтому мне нужен запрос. Мне нужно получить список всех displayName
в моей ветке users
. Я смущен относительно того, как собрать это для каждого user
, который обозначается каждым пользователем auth.uid.Firebase v3 Query by Grandchild
Как выглядит поиск? Я имею в виду что-то вроде:
firebase.database().ref('users/' + allUserIds).equalTo('Joe');
, но я знаю, что allUserIds
не действует. Может кто-то помочь мне с этим?
{
"users" : {
"6mJb9vtpbDelyyjirKEf6sSEj8h1" : {
"name" : "[email protected]",
"provider" : "password",
"displayName" : "Joe"
},
"T7D7qEOPPHXjKSzglKheGJDQNkE3" : {
"name" : "[email protected]",
"provider" : "password",
"displayName" : "Jane"
},
"kTG9R0V4aXYsogQfgF633KFYtzV2" : {
"name" : "Andre3000",
"provider" : "google.com",
"displayName" : "Andre"
}
}
}
Вы запускаете запрос в коллекции, но заказываете/фильтруете свойство отдельных элементов. Это действительно всегда немного сбивает с толку. Напомню, не забудьте поставить '.indexOn' на правильный уровень. Я добавил пример. –
В моем коде нет операторов 'return', поэтому я не уверен, что вы имеете в виду. Если у вас возникли проблемы с его работой, можете ли вы настроить jsfiddle/jsbin, который воспроизводит эту проблему? –
Это особое усилие не требуется. '.updateProfile' хранит свойства' displayName' и 'photoURL' в системе Firebase Auth. Поэтому нет необходимости устанавливать/получать этот материал под узлом пользователя в вашей базе данных реального времени. –