Я пытаюсь обновить некоторые данные в моей базе данных 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, за исключением последнего выполнения, где весь код выполняется, я хочу полный код быть исполненным в первый раз.