You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Firebase Modular SDK V9中使用setPersistence并解决相关报错

问题原因

你使用的是Firebase 9的模块化API,而代码中firebaseApp.auth.Persistence是Firebase 8及更早版本的用法。Firebase 9重构了整体API结构,不再将Persistence枚举挂载在firebaseApp的auth属性下,因此访问firebaseApp.auth.Persistence时会抛出未定义的类型错误。

解决方案

步骤1:导入Firebase 9提供的持久化常量

Firebase 9将三种登录态持久化选项直接作为常量从firebase/auth模块导出,不同运行环境对应的常量不同:

  • 浏览器环境本地持久化(等同于原Persistence.LOCAL):browserLocalPersistence
  • 浏览器环境会话级持久化(等同于原Persistence.SESSION):browserSessionPersistence
  • 浏览器环境内存级持久化(等同于原Persistence.NONE):inMemoryPersistence
  • React Native环境本地持久化:reactNativeLocalPersistence

步骤2:修改原有代码

替换setPersistence的第二个参数为导入的常量即可,修改后的示例代码如下:

// 导入依赖
import { setPersistence, browserLocalPersistence } from "firebase/auth";
// auth为你初始化Firebase Auth后得到的实例
import { auth } from "./firebase-init";

setPersistence(auth, browserLocalPersistence)
  .then(async () => {
    // 原有登录逻辑
  })
  .catch((e) => {
    this.error = e.message;
  });

内容的提问来源于stack exchange,提问作者Kamal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:12:02