更改 Firebase 的包 ID

Changing bundle ID for Firebase

在这个项目的早期,我犯了在包标识符中没有前缀 com 的错误。现在我准备好试飞了,但我有一个无效的包标识符。

目前,我的包标识符是 mycompany.myProject,但我希望它是 com.mycompany.myproject。我可以毫无问题地切换到所需的 bundle id 来存档应用程序并上传到应用程序商店。

我将应用程序切换到适当的包标识符所采取的步骤:

  1. 使用正确的包 ID 在 firebase 控制台中创建新应用。
  2. 下载这个新应用的 Google-Info.plist 并放置在项目根目录中并拖入 Xcode 项目。
  3. 更改 Facebook 上的包标识符
  4. 在项目设置中更改包标识符

但是,该应用程序因此错误而严重崩溃。

*** Terminating app due to uncaught exception 'InvalidPathValidation', reason: '(child:) Must be a non-empty string and not contain '.' '#' '$' '[' or ']''

出现此错误的时间点是在调用 Firebase 方法时

- (NSString *) getUid {
return [FIRAuth auth].currentUser.uid;
}

此方法 returns nil 提供了一种从 Firebase 检索数据的方法。此方法的 nil return 导致 InvalidPathValidation 错误。

我正在使用 Facebook 进行身份验证。我想这可能是 returning nil 的原因是该应用程序不知道谁登录了,因为我从未被提示登录(我的应用程序检查您是否通过 Facebook 在 viewWillAppear 在开头 ViewController)。但这没有意义,因为我所做的唯一更改是更改包 ID。我在这个问题上被困了将近一个星期。

我特别想知道我需要更改什么才能使 Firebase 接受包标识符更改。

解决方案是在同一个 firebase 项目中创建一个新应用

以上答案在发布时可能是正确的,但帮助我的是在目标的签名和功能设置中更改包标识符。然后,我转到 GoogleService-Info.plist 文件并更改了 BUNDLE_ID 的值。然后,我点击 Command +B 构建应用程序并 运行 应用程序。它对我来说工作得很好,我没有收到任何错误。