如何在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
相关产品推荐
相关产品推荐

