見出し画像

[Flutter]iOSアプリ開発でFirebase導入時に出るエラーの解消方法

チンムーです。
私はFlutterとFirebaseを使ってAndroidアプリを開発しています。
ただ、みなさん御存知の通りFlutterはiOSもAndroidもWebも開発できるという優れたマルチプラットフォームです。

それなのになんでAndroidだけ開発してるんだろう…
勿体ない!ということでiOSにも対応できるようにしました。

作業前は、今までAndroidだけだったのにiOSにも対応させるのは大変かな?とビビっていたのですが、実はそこまで時間はかかりませんでした。
もちろん作業途中にエラーが発生したのでその解消方法についてご説明します。

手順

ステップ 1: Firebase プロジェクトを作成する
ステップ 2: アプリを Firebase に登録する
ステップ 3: Firebase 構成ファイルを追加する
ステップ 4: アプリに Firebase SDK を追加する
ステップ 5: アプリで Firebase を初期化する

https://firebase.google.com/docs/ios/setup?hl=ja

Firebaseに登録・ログインし、公式ドキュメントの上記5ステップをこなしていきます。
ちなみにステップ2のiOSアイコンはこんな感じ。

ステップ5まで完了した後、自分はAndroidでFirebaseを使っていたので初期設定は終わっているのでもうアプリ動かせるかなと思いビルドしてみました。すると、以下エラーに遭遇。

エラー

[VERBOSE-2:ui_dart_state.cc(198)] Unhandled Exception: [core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()

解決策

困ったときは公式ドキュメントです。
FutterにFirebase追加時の設定を見直すとステップ 2: Firebase を使用するようにアプリを構成するに「Flutter アプリで新しいプラットフォームをサポートする場合はflutterfire configureを再実施」と書いてました。

ステップ 3: アプリで Firebase を初期化するに進みます。
以下をFlutterプロジェクトのルートディレクトリで実行

flutterfire configure

以下の質問がターミナルに表示されるので答えていきます

/// →自分のFirebase Projectの名前を選択
Select a Firebase project to configure your Flutter application with 
/// どのプラットフォームを使うか 
/// 例えばAndroidとiOSだけなら、上下の矢印キーで項目を選んでスペースキーを押すとチェックが付いて選択できます
Which platforms should your configuration support (use arrow keys & space to select)?

最後まで答えると以下の文が表示され、Flutterプロジェクトにlib/firebase_options.dartというファイルが作成されたことがわかります。

Firebase configuration file lib/firebase_options.dart generated successfully with the following Firebase apps:

main.dartファイルに移動しlib/firebase_options.dartをimport

import 'firebase_options.dart';

main.dartのvoid main()の{}内に以下を追加

await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

DefaultFirebaseOptionsによってFirebaseを初期化することが大事だったようです。Flutter runで再ビルドすると、アプリが起動しました!

この記事が気に入ったらサポートをしてみませんか?