このプロジェクトの早い段階で、バンドル識別子に接頭辞com
が含まれていないというエラーが発生しました。これでフライトをテストする準備ができましたが、バンドルIDが無効です。
現在、バンドルIDはmycompany.myProject
ですが、com.mycompany.myproject
にしたいです。アプリをアーカイブしてアプリストアにアップロードするために、目的のバンドルIDに切り替えても問題ありません。
アプリを適切なバンドル識別子に切り替えるために行った手順:
ただし、アプリはこのエラーで致命的にクラッシュします。
*** 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;
}
このメソッドは、Firebaseからデータを取得するためのメソッドをフィードするnil
を返します。このメソッドのnil
を返すと、InvalidPathValidation
エラーが発生します。
Facebookで認証しています。これがnil
を返す理由は、ログインを要求されたことがないため、アプリが誰がログインしているかがわからないためだと思いました(私のアプリは、最初のViewControllerのviewWillAppear
でFacebookからログインしているかどうかを確認します)。ただし、私が行った唯一の変更はバンドルIDの変更であったため、これは意味がありません。私はほぼ1週間この問題に行き詰まっています。
FirebaseがバンドルIDの変更を受け入れるために何を変更する必要があるのかを具体的に考えています。
解決策は、同じfirebaseプロジェクト内に新しいアプリを作成することでした