Flutter アプリに Firebase を追加する方法

Flutter アプリに Firebase を追加する方法をご紹介します。

Flutter

前提条件

本記事は Flutter アプリ作成 〜 Android Emulator で起動まで ができている前提で進めていきます。

基本的に、Firebase 公式サイトの説明どおりに進めるだけで Flutter アプリに Firebase を追加することができました。

🔗 Flutter アプリに Firebase を追加する

Flutter for Android へ Firebase 追加

1つだけ注意が必要な点がありまして、上記の記事の 4. Android アプリで Firebase サービスを有効にするには、Gradle ファイルに google-services プラグインを追加します。 の部分が Firebase Console (https://console.firebase.google.com/project/your_project_name) に記載されているものと違う点です。

Firebase Console に表示されている Android アプリ用の設定なのでそれは使わずに、今回は Android アプリを構成する の方の設定を利用してください。

エラー Token retrieval failed: AUTHENTICATION_FAILED

Flutter Project で Android Emulator がネットワークに接続できなくて E/FirebaseInstanceId( 6972): Token retrieval failed: AUTHENTICATION_FAILED というエラーが発生したので、その解決方法だけご紹介します。

cd /Users/yourname/Library/Android/sdk/emulator
./emulator -list-avds
./emulator -avd Pixel_3a_API_29 -dns-server 8.8.8.8

🔗 参考: Android エミュレーターでネットワークに繋がらない時 – Qiita

Flutter for iOS へ Firebase 追加

3-b. ダウンロードしたファイルを Flutter アプリの Runner/Runner ディレクトリに移動します。

🔗 引用元: iOS アプリを構成する

上記の GoogleService-Info.plist ファイルは必ず Xcode アプリで作業するようにしてください。

GoogleService-Info.plist | Xcode

Xcode で GoogleService-Info.plist を追加しないと flutter run 実行時に Xcode build で以下のようなエラーが発生します。

$ flutter run
Launching lib/main.dart on iPhone 11 Pro Max in debug mode...
Running pod install...                                              3.3s
Running Xcode build...                                                  
                                                   
 ├─Assembling Flutter resources...                           6.7s
 └─Compiling, linking and signing...                        12.1s
Xcode build done.                                           26.1s
	path: satisfied (Path is satisfied), interface: en0
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff23c7127e __exceptionPreprocess + 350
	1   libobjc.A.dylib                     0x00007fff513fbb20 objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff23c710bc +[NSException raise:format:] + 188
	3   Runner                              0x00000001008fe52a +[FIRApp configure] + 138
	4   Runner                              0x00000001009d6a89 -[FLTFirebaseAnalyticsPlugin init] + 185
	5   Runner                              0x00000001009d695d +[FLTFirebaseAnalyticsPlugin registerWithRegistrar:] + 173
	6   Runner                              0x00000001008f9ce0 +[GeneratedPluginRegistrant registerWithRegistry:] + 112
	7   Runner                  <…>

Flutter + Firebase サンプルコード

Flutter アプリに Firebase をインストールしたサンプルコードは以下の GitHub Pull Request に公開していますので、ぜひご覧ください。

🔗 Install Firebase (Android and iOS are working) · Pull Request #3 · codenote-net/flutter_sandbox

以上、Flutter アプリに Firebase を追加した現場からお送りしました。