我正在尝试在我的firebase数据库中创建个性化用户部分。每次用户创建帐户时,都会存储信息。当我执行推送时,数据不会发送到数据库。
firebase.auth().createUserWithEmailAndPassword(email, password).then(function(result){
console.log('result', result);
if (result) {
// User is signed in.
result.updateProfile({displayName: document.getElementById("name").value});
var user_info = {id: result.uid, email: result.email, display_name: result.displayName};
console.log('user_info', user_info);
// Storing user info into database.
var database = firebase.database();
console.log('user id', user_info.id);
database.ref().child('users/' + user_info.id).push({
displayName: user_info.display_name,
id: user_info.id,
email: user_info.email
});
window.location = "index.html"
} else {
alert("Something went wrong.");
}
})
答案 0 :(得分:0)
您的代码中存在争用条件。
window.location = "index.html"
窗口重定位正在中断数据库写入操作。在重定向之前,您必须等待database.ref()。child(' users /' + user_info.id).push完成。
database.ref().child('users/' + user_info.id).push(obj).then(function() {
window.location = "index.html"
});