Обновить jQuery dataTable из Firestore в режиме реального времени querySnapshot - PullRequest
0 голосов
/ 10 апреля 2020

Я использую jQuery dataTable в моем проекте, чтобы показать некоторые данные из Firestore. Все работает правильно, проблема в том, что когда некоторые данные обновляются в Firestore, в браузере появляется следующее предупреждение:

DataTables warning: table id=student-dataTable - Cannot reinitialise DataTable. 
For more information about this error, please see http://datatables.net/tn/3

Я понимаю, что пытается сказать ошибка, но как мне решить проблему?

Ниже приведен мой код:

$(document).ready(function() {
    var dataSet = [];
    let db = firebase.firestore();

    let query = db.collectionGroup("members").where("class", "==", "9");

    let observer = query.onSnapshot(function(querySnapshot){
        console.log("Got data");
        if (!querySnapshot.empty) {
            querySnapshot.forEach(function(doc) {
                dataSet.push([doc.data().memberName, doc.data().phone ]);
            });
        } else {
            console.log("querySnapshot in empty");
        }
        $('#student-dataTable').DataTable({
            data: dataSet,
            destroy: true,
            columns: [
                { title: "Name" },
                { title: "Phone" },
            ]
        });
    });    
  });

И код HTML:

<table id="student-dataTable">

Так что кто-нибудь может мне помочь, как восстановить мою таблицу, когда данные Firestore обновления. Есть некоторая информация о этой ссылке, она предлагает использовать table.destroy (); , но как мне использовать ее для решения этой проблемы?

Я обновил код с destroy: true, но при повторной инициализации таблицы все данные каждый раз передаются в переменную dataSet, поэтому при каждом обновлении данных каждая строка повторяется в таблице. Как очищать переменную dataSet каждый раз.

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