【发布时间】:2021-03-14 07:08:57
【问题描述】:
功能:如果他或她在之前的网络会话中成功登录,我想使用用户的个人资料自动登录。
问题:我在尝试执行 firebase.auth() 时在我的 React 项目中收到“No Firebase App”错误。主要的 firebase 对象初始化在我的 index.js 文件的末尾触发,firebase.initializeApp(firebaseConfig)。据我所知,firebase 实例在执行代码的身份验证部分时未正确初始化。通常,我希望对 init 函数的回调执行身份验证,但没有。所以我的问题是在网页加载期间进行上述自动身份验证/登录的最佳位置是什么?目前验证是在componentDidMount 上执行的,这显然不能解决问题......
componentDidMount = () => {
if (localStorage.getItem("auth") == "google")
this.authenticate();
};
authenticate = () => {
var provider = new firebase.auth.GoogleAuthProvider();
firebase // <- exception
.auth()
.signInWithPopup(provider)
.then(function (result) {
// @ts-ignore
var token = result.credential.accessToken;
user = result.user;
localStorage.setItem("auth", "google");
【问题讨论】:
-
您是否尝试将
firebase.initializeApp(firebaseConfig)放在index.js的开头,在组件之前而不是结尾? -
是的,我已经尝试过了(在
ReactDOM.render部分代码之前),但出现以下错误:未处理的拒绝(TransactionInactiveError):针对当前未激活或已完成的事务发出请求
标签: reactjs firebase firebase-authentication