我正在尝试将一些数据更新到我的Firebase实时数据库中,但是由于某些原因,当我用新字符串显示代码时,代码会运行多次,这会弄乱代码的输出。
下面是我尝试过的工作,我尝试为ref.update()
创建一个新函数,但是同样的事情再次发生,我在代码的注释中指出了代码返回的确切位置。 / p>
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()
用于从数据库读取数据,接下来的两个函数只是输出的一些步骤,最后一个函数spam_or_ham
是在代码进入时出现错误的位置if
语句并到达ref9.update
部分,它在第一个函数中运行回到ref.on
,并运行多次,每次执行直到ref9部分,最后一次执行除外完整的代码已执行,我希望完整的代码本身在第一次执行。