根据 firebase 文档:https://firebase.google.com/docs/database/web/read-and-write#receive_a_promise https://firebase.google.com/docs/database/web/read-and-write#receive_a_promise, the set
方法返回一个承诺。在这种情况下,最简单的例子是:
function writeUserData(uid, fn, ln, userEmail) {
firebase.database().ref('users/' + uid).set({
firstName: fn,
lastName: ln,
email: userEmail
}).then(function onSuccess(res) {
window.location.href = "./mypage.html";
}).catch(function onError(err) {
// do sth, e.g. console.error(err);
});
};
您的代码和我的示例之间的区别在于我添加的部分:
.then(function onSuccess(res) {
window.location.href = "./mypage.html";
}).catch(function onError(err) {
// do sth
});
简而言之,“如果请求成功,则执行onSuccess
。如果没有 - 做onError
.
您可以在此处获取有关 Promise 如何工作的更多信息:Promise mdn 文档 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
为了提高可读性,你可以这样写:
function writeUserData(uid, fn, ln, userEmail) {
firebase.database().ref('users/' + uid).set({
firstName: fn,
lastName: ln,
email: userEmail
})
.then(onSuccess)
.catch(onError);
};
function onSuccess(res) {
window.location.href = "./mypage.html";
}
function onError(err) {
// do sth
}