Как извлечь дочернее значение из child в firebase с javascript? - PullRequest
0 голосов
/ 01 мая 2020

Firebase Structure

var ref = firebase.database().ref("games/" + gameId + "/patterns");
ref.on("child_changed", function(snapshot){
  var pattern = snapshot.key;
  console.log(pattern);
});

Это дает только ключ. Что если я хочу извлечь имя игрока, чей статус = 0

Я знаю, что снимок содержит все дочерние данные, которые мне нужно извлечь, потому что когда я использую

var ref = firebase.database().ref("games/" + gameId + "/patterns");
ref.on("child_changed", function(snapshot){
  var value = snapshot.val();

  console.log(value);
});

, я получаю данные как это ..

Snapshot Value

Я не могу получить данные ребенка по мере необходимости.

1 Ответ

0 голосов
/ 01 мая 2020

Извлекаемое вами значение является обычным объектом JavaScript / JSON, поэтому вы можете обращаться к его элементам так же, как и к любому другому JavaScript объекту. Ваши ключи уровня 1, 2, 3 будут преобразованы в массив Firebase, что означает, что он добавляет элемент null в начале этого массива. Подробнее об этом см .: База данных Firebase возвращает ноль в начале каждого нового узла

До l oop по всем дочерним узлам под дочерним элементом patterns, который был изменен, и получим игроки, чей status равен 0, вы бы сделали что-то вроде:

var ref = firebase.database().ref("games/" + gameId + "/patterns");
ref.on("child_changed", function(snapshot){
  snapshot.forEach(function(child) {
    if (child.val() && child.val().status == "0") {
      console.log(child.val().player);
    });
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...