所以问题几乎是标题,刷新页面或加载不同页面后,用户唯一 ID 变得未定义。尽管我仍然可以使用其他用户数据,例如姓名或电子邮件。
signinBut.addEventListener("click", e => {
firebase.auth().signInWithPopup(provider).then(function(result) {
var token = result.credential.accessToken;
user = result.user;
}).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
var email = error.email;
var credential = error.credential;
});
});
这是写入用户对象的函数。
最佳答案
为了确保您始终获得用户正确的登录状态,attach a listener to onAuthStateChanged
as shown in the Firebase documentation 。您可以使用此代替当前的then()
回调,因此:
signinBut.addEventListener("click", e => {
firebase.auth().signInWithPopup(provider).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
var email = error.email;
var credential = error.credential;
});
});
firebase.auth().onAuthStateChanged(function(user) {
user = result.user;
});
关于javascript - 刷新后 firebase uid 变为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49588310/