Firebase:如何获取当前用户的身份验证状态?

问题描述 投票:0回答:1

我有这个 firebase.js 文件:

// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";

const firebaseConfig = {...};

// Initialize Firebase
export const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);


import { getAuth, onAuthStateChanged } from "firebase/auth";

export const auth = getAuth(app);
export let uid = null;

onAuthStateChanged(auth, (user) => {
  if (user) {
    uid = user.uid;
  } else {
    uid = null;
  }
});

在我一直在尝试做的另一个功能中:

import {uid, auth} from "./firebase.js";
if (auth.currentUser)

if (uid)

但是,这两种方法都不能始终如一地工作。签名后,用户将存在,但页面重新加载后,它们会再次消失。这是检查用户是否登录的正确方法吗?

javascript firebase firebase-authentication
1个回答
0
投票

onAuthStateChanged
是异步的,不会立即发出回调。 页面初始加载后,回调验证用户是否确实已登录并经过验证之前,可能需要一段时间。

当您说用户“disappeasr”时,您可能试图在回调发生之前立即观察页面加载时的登录状态,这根本不会按照您期望的方式工作。 您需要等待第一个回调的结果才能知道用户何时登录,并继续侦听未来的回调以了解是否以及何时发生变化。

© www.soinside.com 2019 - 2024. All rights reserved.