В настоящее время я реализую функцию javascript, чтобы судить, совпадают ли идентификатор пользователя и имя.
function name_match(user_id, user_realname) {
var dbref = firebase.database().ref();
var namesref = dbref.child("names");
namesref.on("value", function(snapshot) {
snapshot.forEach(i => {
if(i.key == user_id && i.child("realname").val() == user_realname) {
return true;
}
});
});
return false;
}
Однако, независимо от ввода, он первоначально вернет false. Я думаю, что это потому, что он будет возвращать «ложь» во время загрузки данных Firebase.
Таким образом, даже если в конечном итоге возвращается значение true, поскольку возвращаемое значение в первый раз равно false, это вызывает проблему, подобную этой (в другой функции).
function name_match2() {
var user_id = document.getElementById("user-id").value;
var user_realname = document.getElementById("user-realname").value;
if(!name_match(user_id, user_realname)) return -1;
return 0;
}
И он вернет -1.
Можете ли вы объяснить, как решить эту проблему?