エラー「Failed to load FirebaseOptions from resource.」の解消方法
Flutter SDKを 2.10.5
から 3.24.3
にバージョンアップしました。
それにともないFirebase関連もアップデートしていたところ、下のようなエラーが出ました。
Failed to load FirebaseOptions from resource. Check that you have defined values.xml correctly.
解決方法は2つあります。簡単なのは解決策2ですが、確実なのは解決策1の方です。
ご自身の環境に合わせてお試しください。
- 解決策1:firebase_options.dartファイルを追加して読み込む。
- 解決策2:google-servicesのバージョンを4.3.8にダウングレードする
解決策1
同じエラーが出ている人は他にもいるようです。下のサイトが参考になります。
Created new app, and configured it with CLI mode it will generate the options file for all platforms. Just add google-services.json won't be enough from flutter 3.19 it seems.
↓DeepL翻訳
新しいアプリを作成し、CLIモードで設定すると、すべてのプラットフォーム用のオプションファイルが生成される。flutter3.19からはgoogle-services.jsonを追加するだけでは不十分なようだ。
Firebase CLIを使って新しいアプリを作成するように促しています。
それはちょっと面倒ですね……。
もう少し読み進めると、Firebase CLIでアプリ生成した際に作られたファイルを公開してくれている人がいました。
firebase_options.dart
ファイルを作成し、それを読み込むとうまくいくようです。
I had a file firebase_options.dart which was created while configuring firebase for the project.
So I did not need to create a new project. All I needed to do is to import this file in main.dart and pass FirebaseOptions to Firebase.initializeApp, like this
↓DeepL翻訳
firebase_options.dartというファイルがあるのですが、これはプロジェクトのためにfirebaseを設定する際に作成されたものです。
だから新しいプロジェクトを作る必要はなかった。必要なのは、main.dartでこのファイルをインポートして、Firebase.initializeAppにFirebaseOptionsを渡すだけだ。
【手順】
-
libフォルダの直下に
firebase_options.dart
を作成し、上記サイトに公開されているコードをコピー&ペーストします。 -
Firebase.initializeApp
を実行しているファイルに以下の参照を追加します。
import 'package:flutter_complete_guide/firebase_options.dart';
- Firebase.initializeApp を下のように書き換えます。
Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform)
解決策2
急いでいる人、最新バージョンでなくても問題ない人はこちらのサイトのAakaashさんが書いてくれた解決方法をお試しください。
android/settings.gradle
ファイルを開き、com.google.gms.google-services
のバージョンを4.3.8 にダウングレードします。
id "com.google.gms.google-services" version "4.3.8" apply false
私はこの方法でいったん解決させました。落ち着いたら解決策1を試そうと思います。
Discussion