База данных Firebase в реальном времени: как получить значение родительского узла - PullRequest
2 голосов
/ 27 января 2020

Допустим, у меня есть узлы базы данных, структурированные как показано ниже: Каждый пользователь устанавливает имя пользователя по своему предпочтению, и его / ее UID, назначенный авторизацией Firebase, регистрируется под именем пользователя.

"uid_match":
 {
   "username_1" : {
      "uid" : "firebase_uid_1"
    },
   "username_2" : {
      "uid" : "firebase_uid_1"
  }

I'm пытаюсь написать коды для извлечения имени пользователя с помощью firebase uid. Он будет искать определенный UID Firebase и вернет имя пользователя, который имеет свой собственный URL.

Ниже приведена часть кода, которую я написал, но он возвращает '/ uid_match' вместо '/ username_1' или '/username_2'.

 let ref=firebase.database.ref('/uid_match');
 let user=firebase.auth().currentUser;
 ref.orderByChild('uid').equalTo(user.uid).once('value', function(snapshot) {
     window.location.href='/'+snapshot.key;
 })

Вопрос: Что будет правильный код запроса для извлечения «username_1» или «username_2» вместо «uid_match»? Большое спасибо заранее.

1 Ответ

1 голос
/ 27 января 2020

Вам нужно выполнить итерацию внутри snapshot, чтобы получить ключи username_1 и _username_2:

 let ref=firebase.database.ref('/uid_match');
 let user=firebase.auth().currentUser;
 ref.orderByChild('uid').equalTo(user.uid).once('value', function(snapshot) {
     snapshot.forEach(function(childSnapshot){
     window.location.href='/'+childSnapshot.key;
   });
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...