我有一个网络应用程序,允许用户使用他们的Gmail帐户登录。一旦用户登录,我就可以使用result.user对象看到它的详细信息 -
function signInWithGoogle(){
var provider=new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result){
var user=result.user;
console.log("user_provider="+user.displayName+" user_email="+user.email+" user_dp="+user.photoURL+" user_verification="+user.emailVerified+" uid="+user.uid);
}).catch(function(error){
console.log("error="+error);
});
}
登录后,我想在重新加载和刷新之后保留页面中的用户详细信息,因为我使用了auth()的User对象 -
$(document).ready(function(){
var user=firebase.auth().currentUser;
console.log(user);
});
但它将用户显示为null虽然我可以在firebase中的身份验证控制台中看到用户电子邮件地址。
P.S。我也使用了onAuthStateChanged而不是currentUser,但它仍然没有用。
答案 0 :(得分:0)
onAuthStateChanged
应该有效。你必须正确地听。
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// currentUser should be available now.
} else {
// No user logged in.
}
});
请记住,状态存储在单个主机源Web存储中。因此,如果您导航到具有不同域的页面,则状态将不会传播。