веб-код firebase, запускаемый несколько раз при выполнении - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь обновить некоторые данные в моей базе данных Firebase в реальном времени, но по какой-то причине код запускается несколько раз, когда я представляю его с новой строкой, это портит вывод кода.

Ниже я попробовал создать новую функцию для ref.update(), но то же самое происходит снова, я указал в комментариях к коду, куда именно возвращается код.

function fire_base_db() {
    var ref = firebase.database().ref();
    ref.on("value", function(snapshot) {
        r = snapshot.val();
        var ham_db = r.hams.spam_words;
        var spam_db = r.spams.spam_words; //contains spam data now
        console.log('function 1')
        inputstring(ham_db, spam_db);
    }, function(error) {
        console.log("Error: " + error.code);
    });
}
inputstring(ham_db, spam_db); //just a random function i need 
spam_prop(user_string_toknized, spam_db, ham_db); //yet another 
function spam_or_ham()

function spam_or_ham() {
    var final_value = " ";

    if (total_spam_probablity < total_ham_probablity) {

        console.log("ham");
        final_value = "ham";
    } else {

        console.log("spam");
        final_value = "spam";
    }


    if (final_value = "spam") {
        var ref = firebase.database().ref("hams/spam_words/");

        ref.update(old_words_spam_2);
    } else if (final_value = "ham") {
        var ref2 = firebase.database().ref("spams/spam_words/")
        ref2.update(old_words_ham_2)
    };


    for (var a in new_words_spam) {
        new_words_spam[b] = 1
    }

    for (var b in new_words_ham) {
        new_words_ham[a] = 1;
    }


    if (final_value = "spam") {
        var ref9 = firebase.database().ref("spams/spam_words/")

        ref9.update(new_words_spam)

    } else if (final_value = "ham") {
        var ref2 = firebase.database().ref("hams/spam_words")
        ref2.update(new_words_ham)
    }

}
fire_base_db_upadt_new_words();
fire_base_db_upadt_new_words_2();

Первая функция fire_base_db() используется для чтения данных из базы данных, следующие 2 функции - это всего лишь несколько шагов для вывода, последняя функция spam_or_ham - это место, где появляется ошибка, в момент ввода кода в if оператор и достигает части ref9.update, он возвращается к ref.on в первой функции и запускается несколько раз, каждый раз до части ref9, за исключением последнего выполнения, где весь код выполняется, я хочу полный код быть исполненным в первый раз.

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