Почему я получаю «undefined» в таблице в моем приложении Firebase? - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь создать приложение, которое извлекает данные из Firebase и отображает их в таблице с использованием JavaScript.Проблема в том, что он показывает «undefined» в приложении и в консоли, и когда я пытаюсь распечатать значения непосредственно из функций, в которых они содержат значение, так может кто-нибудь помочь мне с этим?

Этомой код:

function doSomething() {
  var something = firebase.database().ref('*****');

  //comment selection 
  something.on('value', function gotData(data) {
    var values = data.val();
    var keys = Object.keys(values);
    var i = 0;
    while (i < keys.length) {
      var k = keys[i];
      var comments = values[k].comment;
      var idU = values[k].id;
      var idS = values[k].idservice;
      var nom = getuser(idU);
      var service = getservice(idS);
      var tr = document.createElement('tr');
      var td = document.createElement('td');
      var td2 = document.createElement('td');
      var td3 = document.createElement('td');
      var t = document.createTextNode(i + ':' + comments);
      var t2 = document.createTextNode(nom);
      var t3 = document.createTextNode(service);

      td.appendChild(t);
      td2.appendChild(t2);
      td3.appendChild(t3);
      tr.appendChild(td);
      tr.appendChild(td2);
      tr.appendChild(td3);
      document.getElementById("commentsection").appendChild(tr);
      i++;
    }
  }, errData);
}

function getuser(IdU) {
  var users = firebase.database().ref('******');
  users.on('value', function getData(data) {
    var values = data.val();
    var keys = Object.keys(values);
    var j = 0;

    while (j < keys.length) {
      var k = keys[j];

      if (k === IdU) {
        var name = values[k].nom;

        console.log(name);

        return name;

        break;
      } else {
        console.log('not found');

        break;
      }
      j++;
    }
  }, errData);
}

function getservice(IdS) {
  var service = firebase.database().ref('******');
  service.on('value', function getData(data) {
    var values = data.val();
    var keys = Object.keys(values);
    var s = 0;

    while (s < keys.length) {
      var k = keys[s];

      if (k === IdS) {
        var nomservice = values[k].nomservice

        console.log(nomservice);

        return nomservice;

        break;
      } else {
        return false;
      }
      s++;
    }
  }, errData);
}

function errData(err) {
  console.log('error!');
  console.log(err);
}

Это скриншот того, что я получаю:

Screenshot

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