[英]firebase.auth().onAuthStateChanged Not Working
I'm trying to build a website that uses email auth for users.我正在尝试建立一个为用户使用电子邮件身份验证的网站。 However, everytime I try to sign up or log in a user, the firebase.auth().onAuthStateChanged function fires, but doesn't recognize that a user has logged in or signed up.但是,每次我尝试注册或登录用户时,firebase.auth().onAuthStateChanged 函数都会触发,但无法识别用户已登录或注册。 This is my current code.这是我当前的代码。 I know it works because it will alert me, "No user!"我知道它有效,因为它会提醒我,“没有用户!” after every log in or sign up and because I can go into my Firebase console and see that the user has signed up.每次登录或注册后,因为我可以进入我的 Firebase 控制台并查看用户已注册。 If anyone knows how to fix this, I would appreciate it!如果有人知道如何解决这个问题,我将不胜感激!
Thanks!谢谢!
Code:代码:
function initApp() {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
alert("Signed in user!")
} else {
alert("No user!")
}
});
}
window.onload = function() {
initApp();
};
CODE FOR LOGIN & SIGNUP:登录和注册代码:
function toggleSignIn() {
if (firebase.auth().currentUser) {
alert("Sign out")
firebase.auth().signOut();
// [END signout]
} else {
var email = document.getElementById('email').value;
var password = document.getElementById('pass').value;
if (email.length < 4) {
alert('Please enter an email address.');
return;
}
if (password.length < 4) {
alert('Please enter a password.');
return;
}
// Sign in with email and pass.
// [START authwithemail]
firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// [START_EXCLUDE]
if (errorCode === 'auth/wrong-password') {
alert('Wrong password.');
} else {
console.error(error);
}
// [END_EXCLUDE]
});
// [END authwithemail]
}
}
function handleSignUp() {
var email = document.getElementById('semail').value;
var password = document.getElementById('spass').value;
if (password.length < 6) {
alert('Password must be 6 characters or more!');
return;
}
// Sign in with email and pass.
// [START createwithemail]
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// [START_EXCLUDE]
if (errorCode == 'auth/weak-password') {
alert('The password is too weak.');
} else {
console.error(error);
}
// [END_EXCLUDE]
});
// [END createwithemail]
}
It appears that my problem was my domain was not authorized for OAuth operations for that Firebase project... I had forgotten to add my domain to the list of authorized ones. 我的问题似乎是我的域名未获得该Firebase项目的OAuth操作授权...我忘记将我的域名添加到授权列表中。
To fix this, go to your Firebase project > Authentication > Sign-In Method > Add your domain under Authorized Domains. 要解决此问题,请转到您的Firebase项目>身份验证>登录方法>在授权域下添加您的域。
For those poor souls working with react-native-firebase on iOS, there is no need to struggle any more.对于那些在 iOS 上使用 react-native-firebase 的可怜人来说,没有必要再挣扎了。
对于那些在其本机Capacitor\/Cordova 应用程序<\/strong>中使用web js 库<\/strong>作为 firebase 的用户(以便在创建 pwa 时也减少代码),请参阅此处的解决方案: https<\/a> :\/\/stackoverflow.com\/a\/70902260\/17137614
"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.