Подождите, пока новые данные не будут обнаружены в базе данных Firebase (веб) - PullRequest
0 голосов
/ 22 марта 2020

В этом примере я хочу изменить сайт, когда новый узел с именем «друг» создается в родительском узле в базе данных firebase. Я не знаю, как заставить его ждать, пока он обнаружит новый узел.

    var friendUid;
    firebase.database().ref('users/' + uid).child('friend').on('value', function(snapshot){
       friendUid = snapshot.val();
    })
    while(!friendUid){ //I've also tried with "friendUid == null"
     firebase.database().ref('users/' + uid).child('friend').on('value', function(snapshot){
       friendUid = snapshot.val();
     })
    }
    window.document.location = "whatever.html";

1 Ответ

0 голосов
/ 22 марта 2020

Вам не нужен al oop, но вам do необходимо переместить код, который изменяет местоположение в слушателя:

firebase.database().ref('users/' + uid).child('friend').on('value', function(snapshot){
  var friendUid = snapshot.val();
  if (friendUid == "what you're looking for") {
    window.document.location = "whatever.html";
  }
})

Если вы просто хотите проверить, существует ли узел, это можно упростить до:

firebase.database().ref('users/' + uid).child('friend').on('value', function(snapshot){
  if (snapshot.exists()) {
    window.document.location = "whatever.html";
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...