什么是secondary Firebase App?FlutterFire文档中提及的该概念含义是什么
什么是Secondary Firebase App?
Firebase SDK默认会在项目中初始化一个名为default的全局实例,满足单项目对接的常规需求。如果需要在同一应用内对接多个Firebase项目、或者隔离不同的服务状态,就可以手动初始化更多独立的Firebase实例,这些非默认的实例就被称为Secondary Firebase App。
核心使用场景
- 同一App对接多个独立Firebase项目:比如同时接入面向C端用户的Firebase项目和面向内部运营的Firebase项目,互不干扰
- 同项目下隔离多账号状态:比如支持多账号同时登录的场景,每个账号的鉴权状态、云存储访问权限可以绑定到独立的Secondary实例,不会出现状态串用的问题
FlutterFire中的基础用法
// 初始化自定义名称的Secondary实例 FirebaseApp secondaryApp = await Firebase.initializeApp( // 自定义实例名,用于后续获取对应实例 name: "custom_secondary_app", // 传入对应Firebase项目的配置参数 options: const FirebaseOptions( apiKey: "你的项目apiKey", appId: "你的项目appId", messagingSenderId: "你的项目senderId", projectId: "你的项目id", ), ); // 基于Secondary实例使用Firebase服务,和默认实例用法一致 FirebaseAuth secondaryAuth = FirebaseAuth.instanceFor(app: secondaryApp); // 后续用secondaryAuth做登录、获取用户等操作,和默认Auth实例完全隔离
注意事项
- 每个Secondary实例的配置可以和默认实例完全不同,分别对应不同的Firebase项目
- 不同实例的服务状态完全独立,默认实例的登录用户、缓存数据不会同步到Secondary实例
- 不再使用的Secondary实例可以调用
secondaryApp.delete()手动释放占用的资源
内容的提问来源于stack exchange,提问作者Archit
相关产品推荐
相关产品推荐

