🧯

エラー「Failed to load FirebaseOptions from resource.」の解消方法

2024/10/29に公開

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

同じエラーが出ている人は他にもいるようです。下のサイトが参考になります。

https://stackoverflow.com/questions/78213917/how-do-i-fix-the-error-failed-to-load-firebaseoptions-from-resource-check-that/78215218#78215218

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を渡すだけだ。

【手順】

  1. libフォルダの直下に firebase_options.dart を作成し、上記サイトに公開されているコードをコピー&ペーストします。

  2. Firebase.initializeApp を実行しているファイルに以下の参照を追加します。

import 'package:flutter_complete_guide/firebase_options.dart';
  1. Firebase.initializeApp を下のように書き換えます。
Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform)

解決策2

急いでいる人、最新バージョンでなくても問題ない人はこちらのサイトのAakaashさんが書いてくれた解決方法をお試しください。

https://community.flutterflow.io/ask-the-community/post/deployment-to-android-phone-started-failing-with-firebase-initialisation-t43m1pHpbHZXxCA

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