我是 Firebase 的新手。我正在尝试使用 React + Redux 登录。当我点击“登录”时,它将让我登录一次,然后再次调用 onAuthStateChanged 并且 res
为空,这让我退出
这是我的 Firebase 服务:
const initFirebase = () => {
firebase.initializeApp(config.firebase)
firebase.auth().onAuthStateChanged((res) => {
console.log('Firebase - onAuthStateChanged', {res})
if(res) {
const formData = {
email: res.email,
uid: res.uid,
}
// Check if email exists against local API
APIAuthService(endpoint, 'post', formData).then(response => {
if(response.status) {
let userData = response.data
store.dispatch(authAction.login(userData))
}
})
}
else {
store.dispatch(authAction.logout())
}
})
}
我的 Login.js 组件也可以在这里查看(第 41 行)https://pastebin.com/qcRH6gv2
最佳答案
是的,这是正常的,onAuthStateChanged 会一直触发。您可以使用此代码防止多次调用:
var authFlag = true;
firebase.auth().onAuthStateChanged((res) => {
if(res && authFlag) {
console.log('Firebase - onAuthStateChanged', {res})
authFlag = false;
//rest of your code
关于javascript - Firebase onAuthStateChanged 在登录时被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55845800/