对于我的项目,我有 2 个环境:
和 2 个本地化:
以及每个组合的应用程序:(这些名称不反映 Firebase 项目 ID)
我为项目中的每个应用程序都有一个单独的 plist 文件,名称为Firebase-(app_type).plist
ieFirebase-test_en.plist
或Firebase-prod_en.plist
我正在FIRApp
使用这种方式初始化:
private func ensureLoaded() {
let options = FIROptions(contentsOfFile: Bundle.main
.path(forResource: "Firebase-\(firebaseApplicationName)", ofType: "plist"))!
if nil == FIRApp(named: firebaseApplicationName) {
FIRApp.configure(withName: firebaseApplicationName, options: options)
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎工作正常,直到我尝试实际连接到 firebase 数据库,它说:
Firebase 配置不正确,请调用【FIRApp 配置】
所以我的问题是,如何让 firebase 在我想要动态更改配置的地方工作?还有一些其他问题描述了如何根据一些环境变量/编译器标志更改配置,但它们都是指更改plist
文件,这会在构建时更改配置,但我想在运行时动态更改它。它是否完全受支持,有没有办法让它工作?
提前致谢。
我发现问题是什么,我们在应用程序中的某个地方使用FIRApp.auth().currentUser
,它返回“默认”应用程序的身份验证,并且由于我们有多个配置,我们没有“默认”应用程序的概念,因此配置不完整。我将其更改为FIRAuth(app: myApp)?.currentUser
,现在它按预期工作。
归档时间: |
|
查看次数: |
1047 次 |
最近记录: |