使用选项配置 firebase 在 Xcode 11 和 Firebase 6.19 中崩溃
Posted
技术标签:
【中文标题】使用选项配置 firebase 在 Xcode 11 和 Firebase 6.19 中崩溃【英文标题】:configure firebase with options is crashing in Xcode 11 and Firebase 6.19 【发布时间】:2020-04-18 19:48:41 【问题描述】:我正在尝试在我的应用中注册第二个 firebase 应用。第一个在 didFinishWithLaunchingWithOptions
方法中正确注册(默认使用 GoogleService-Info.plist)
FirebaseApp.configure()
然后我需要从服务器检索一个新的 googleAppId 并使用这个新的 googleAppId 和我的诅咒 iosID 配置一个新的应用程序。我正在 AppDelegate 中进行所有这些注册。我是这样注册的:
let options = FirebaseOptions(googleAppID: String(format: "1:%a:ios:%a", googleID, iOSID), gcmSenderID: googleID)
//Deleting the first app in order to register the second
let app = FirebaseApp.app()
app?.delete _ in
FirebaseApp.configure(options: options)
在我将我的 firebase 版本从 6.2 更新到 6.19 之前它运行良好,现在应用程序在 FirebaseApp.configure(options: options)
中崩溃了
日志说:
Terminating app due to uncaught exception 'com.firebase.installations', reason
'[Firebase/Installations][I-FIS008000] Could not confiure Firebase Installations die to invalid
Firebase options. The following parameters are nil or empty: `FirebaseOptions.APIKEY`. If you
use GoogleServices-Info.plist please download the most recent version from the Firebase Console.
If you configure Firebase in code, please make sure you specify all required paramaters.
值得一提的是,在 Firebase 6.15 版中向 Analytics 添加了一个新框架,因此我必须添加它才能使我的应用再次编译。
我还尝试在 FirebaseOptions
中添加一个新参数,但仍然要求相同的参数,它不希望有一个我不知道从哪里得到它的 APIKEY
【问题讨论】:
从错误消息看来,您需要在FirebaseOptions
中指定 APIKEY
,而您的代码没有这样做。
【参考方案1】:
据我所知,消息来自here。在那里进行的检查表明必须始终指定这三个值:
if (appName.length < 1) [missingFields addObject:@"`FirebaseApp.name`"]; if (appOptions.APIKey.length < 1) [missingFields addObject:@"`FirebaseOptions.APIKey`"]; if (appOptions.googleAppID.length < 1) [missingFields addObject:@"`FirebaseOptions.googleAppID`"];
从错误消息和您的代码看来,您没有在 FirebaseOptions 中指定 APIKEY
,这是 SDK 所必需的。
【讨论】:
你说得对,我所要做的就是以options.APIKEY = "My api key"
和options.projectID = "my project Id"
的方式指定APIKEY 和项目ID。谢谢
对不起,我忘了这样做。再次感谢弗兰克以上是关于使用选项配置 firebase 在 Xcode 11 和 Firebase 6.19 中崩溃的主要内容,如果未能解决你的问题,请参考以下文章
Firebase:Xcode 找不到配置文件:“GoogleService-Info.plist”