【问题标题】:How can I get Firebase authentication on initialization with React.js?如何在使用 React.js 进行初始化时获得 Firebase 身份验证?
【发布时间】:2021-08-10 22:14:51
【问题描述】:

在我的_app.tsx 文件中,我有:

    useEffect(() => {
        firebase.auth().onAuthStateChanged(async (user) => {
            if (!user) {
                // No user is signed in.
                if (router.pathname.startsWith('/app')) {
                    router.push('/');
                }
            } else {
                router.push('/app');
            }
        });
    }, []);

但问题是它总是在刷新时重定向到/app。有什么方法可以等待查看身份验证是否已初始化?

【问题讨论】:

  • console.log(user 作为async (user 中的第一行,这样您就知道用户是否会为空?

标签: reactjs firebase firebase-authentication next.js


【解决方案1】:

React.js 中的 useEffect 不支持异步函数,相反,您希望使用回调来处理它,或者将其包装在异步块中并通过像 redis 这样的状态管理器来更新它的状态。

useEffect( () => {
  let initiate = async () => {
   // onAuthStateChanged goes here
  }

  initiate ();
}, []);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2019-08-14
    • 2021-03-01
    • 1970-01-01
    • 2020-10-09
    • 2017-03-11
    相关资源
    最近更新 更多