база данных Firebase в реальном времени получает имя и значение свойства child_changed - PullRequest
0 голосов
/ 14 октября 2019

Я работаю над базой данных в режиме реального времени. у меня есть проблема в получении значения того, что изменилось в основе огня. у меня есть клиентская социальная база данных внутри него, а затем kkkm (это ключ), а затем другие свойства и значения, и мне нужно переключить утверждение и отклоненные значения, такие как это утверждение: правда, но то, что я получаю, это просто true / false, а не свойствоимя.

toggleCheck = (id) => {
    var ref = firebase.database().ref('posts/'+id);
    ref.off("child_changed");
    var approval;
    ref.on("child_changed", function (data) {
      approval = data.val();
      console.log("=============================");
      console.log("The updated approval is " + approval);
    });
  }

toggleClose = (id) => {
    var ref = firebase.database().ref('posts/'+id);
    ref.off("child_changed");    
    var rejected;
    ref.on("child_changed", function (data) {
      rejected = data.val();
      console.log(ref.getKey());
      console.log(ref.getValue());
      console.log("=============================");
      console.log("The updated rejected is " + rejected);
    });
}

the output i get image

1 Ответ

0 голосов
/ 14 октября 2019

Я не уверен на 100%, что вы хотите сделать («переключить утверждение и отклоненные значения»?), Но, исходя из кода в вашем вопросе, вероятно, вам нужно следующее:

  var ref = firebase.database().ref('posts/' + id);
  ref.on('child_changed', function(data) {
    console.log(data.key);  // <-- Name of the field/node that was modified
    console.log(data.val()); // <-- Value of the field/node that was modified
    console.log("The updated" + data.key + " is " + data.val());
  });

Пояснения:

data является DataSnapshot, который имеет:

  1. A key свойство, которое является «ключом (последней частью пути) расположения этого DataSnapshot.»
  2. A val() метод, который «извлекаетЗначение JavaScript из DataSnapshot. "

ОБНОВЛЕНИЕ ПОСЛЕ ВАШИХ КОММЕНТАРИЙ

Я понимаю, что вы хотите получить оба значения approvalи rejected узлы (поля), когда что-то меняется в post.

Поэтому вы должны использовать тип события value вместо child_changed, как показано ниже:

  var ref = firebase.database().ref('posts/' + id);
  ref.on('value', function(data) {
    var approved = data.val().approved;
    var rejected = data.val().rejected;

    var object = {'approved': approved, 'rejected': rejected};
    //Do whatever you want with the object
    console.log(object);

  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...