Таблица не сможет генерировать с использованием Firebase - PullRequest
0 голосов
/ 26 апреля 2018

это для веб-приложения, которое примет участие в опросе, который я использую firebase.В чем я нуждаюсь, так это в том, что когда приложение экспортирует данные в таблицу, оно захватывает данные, но не может отправить их в таблицу, любая помощь будет принята.Поскольку HTML-код длинный, я добавлю только часть таблицы: часть таблицы файла HTML

<code>   <div id = "table">
   <pre id =  "snap-test">
' Удалить файл ' Добавить новый файл

Таблица.JS файл

 var table = document.getElementById("File-Table");
  const file = $("#File").val();
  var requests = [];
function Export(){
    //calls the file id in the HTML element 
  $("#Survey-Page").hide();
  $("#File-Table").show();
  $("#Log-btn").show();
  var result = [];
//calls the database from the firebase known as users then using a function we nest a snapshot in it for later 
  firebase.database().ref('/users/').once('value').then(function(snapshot){
  //if snapshot is empty then the window will alert 
   if (snapshot.val() == null){
        alert("Does not exist");
   }
   // if the snapshot is full then it will genereate a table based on the snapshot value of the database 
    else {
      console.log(snapshot.val());

        let result = snapshot.val()
      for(let k in result){
        this.requests.push({
          id: k,
          value: result[k]
        });
      }
     var MyTable = '<tr>' +
          '<td>' + snapshot.val().txtName  +'</td>' +
          '<td>' + snapshot.val().txtEmail +'</td>' +
          '<td>' + snapshot.val().FileName + '</th>' +
          '<td><button id = "Email-btn">Send Survey</button></td>' +
          '<td><button onclick = "DeleteTabele()" id = "Delete-btn">Delete File</button></td>' +
            '</tr>';
     MyTable += "</tr></table>";
      table.innerHTML = MyTable;

    }

    console.log(snapshot.val());

  });

1 Ответ

0 голосов
/ 26 апреля 2018

Из кода, который вы опубликовали, наиболее вероятной причиной является то, что ваша ссылка ссылается на узел нескольких пользователей, а не на конкретного пользователя.

firebase.database().ref('/users/')

Чтобы подтвердить это предположение, нам нужно увидеть структуру вашей базы данных.Вы можете редактировать свой пост?

Однако давайте представим, что это предположение верно.Тогда у вас есть два решения:

  1. Если вы хотите отобразить значение ОДНОГО пользователя, который находится под узлом users, вы должны изменить ссылку и указать этого пользователя, например:

    firebase.database (). Ref ('/ users /' + userID)

Тогда остальная часть кода будет работать нормально

Если вы хотите отобразить в своей таблице весь список пользователей (один за другим), вы должны просмотреть результаты запроса следующим образом:

firebase.database().ref('/so').once('value').then(function(snapshot){
var MyTable;

snapshot.forEach(function(childSnapshot) {
    MyTable += '<tr>' +
        '<td>' + childSnapshot.val().txtName +'</td>' +
        '<td>' + childSnapshot.val().txtEmail +'</td>' +
        // ...
        '<td><button id = "Email-btn">Send Survey</button></td>' +
        '<td><button onclick = "DeleteTabele()" id = "Delete-btn">Delete File</button></td>' +
        '</tr>';
     });
     table.innerHTML = MyTable;
}); 

См. Документ здесь: https://firebase.google.com/docs/database/web/lists-of-data#listen_for_value_events


Кроме того, если можно, вы можете взглянуть на этот пост: HTML: отрисовка таблицы с использованием innerHTML , котораяприведены некоторые рекомендации по написанию строк таблицы в «простом» JavaScript.

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