在运行时切换 Firebase 配置文件

Posted

技术标签:

【中文标题】在运行时切换 Firebase 配置文件【英文标题】:Switching Firebase configuration file at runtime 【发布时间】:2017-08-03 07:11:26 【问题描述】:

我的 ios 应用使用两个 Firebase 配置文件,一个用于开发,一个用于生产。如何在运行时在两者之间切换?当我尝试使用[FIRApp configureWithOptions:options]; 进行切换时,出现错误:

 Default app has already been configured.

所以我尝试在切换到其他配置之前清除当前配置[FIRApp deleteApp],但是deleteApp 方法是私有方法,无法访问。

【问题讨论】:

【参考方案1】:

在初始化你的 firebase 时试试这个:

    NSString *filePath;

#ifdef DEBUG
    filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info-Debug" ofType:@"plist"];
#else
    filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info-Live" ofType:@"plist"];
#endif

    FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath];
    [FIRApp configureWithOptions:options];

【讨论】:

【参考方案2】:

我错误地调用了deleteApp 方法。它应该在defaultApp 上调用,例如:

 [[FIRApp defaultApp] deleteApp:^(BOOL success)  ... ];

【讨论】:

以上是关于在运行时切换 Firebase 配置文件的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot运行时动态添加数据源

为啥 XCode 将配置文件从自动选择一个切换到 iOS 团队配置文件

在 Firebase-v9 中使用 Typescript 注册用户时如何更新用户配置文件?

spring配置文件---之数据库切换

Firebase身份验证未经许可更新用户配置文件

如何在 XCode4 中运行单元测试而无需切换到 UnitTest 配置文件/目标?