TestCrew
Firebase・Android設定

Default FirebaseApp is not initializedの原因と直し方|Android・Flutter

Default FirebaseApp is not initialized、core/no-appの原因と直し方を解説。Androidの自動初期化、google-services.json、FlutterのinitializeApp、別プロセスを確認します。

公開
2026年8月2日
更新
2026年8月2日
公式情報確認
2026年8月3日
Default FirebaseApp is not initializedの確認順
この記事の目次

AndroidやFlutterでFirebaseを利用すると、次のエラーが表示されることがあります。

Default FirebaseApp is not initialized in this process.
Make sure to call FirebaseApp.initializeApp(Context) first.

Flutterでは次の形式もあります。

[core/no-app] No Firebase App '[DEFAULT]' has been created

Firebase AuthenticationやFirestoreを取得する時点で、デフォルトFirebaseAppが存在しない状態です。

Default FirebaseApp is not initializedの確認順

AndroidとFlutterの違い

ネイティブAndroid

通常はFirebaseInitProviderが、google-services.jsonから生成されたリソースを使ってデフォルトFirebaseAppを自動初期化します。

一般的な構成では、各ActivityでFirebaseApp.initializeApp()を呼ぶ必要はありません。

Flutter

main()で明示的に初期化します。

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

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

  runApp(const MyApp());
}

Androidの原因1:google-services.jsonがない

基本配置:

app/google-services.json

Flutter・React Native:

android/app/google-services.json

ファイル名、配置先、build variant用ディレクトリを確認します。

Androidの原因2:Googleサービスプラグインがない

アプリモジュールへ適用します。

plugins {
    id("com.android.application")
    id("com.google.gms.google-services")
}

プラグインがJSONを処理し、google_app_idなどのリソースを生成します。

生成先の例:

app/build/generated/res/google-services/debug/values/values.xml

Androidの原因3:パッケージ名が一致しない

Gradle applicationId
=
google-services.json package_name

一致しない場合は、正しいパッケージ名のFirebase Androidアプリを登録し、JSONを再取得します。

Androidの原因4:FirebaseInitProviderを削除した

Merged Manifestで次を確認します。

com.google.firebase.provider.FirebaseInitProvider

Manifestに次のような削除設定が残っていないか検索します。

<provider
    android:name="com.google.firebase.provider.FirebaseInitProvider"
    tools:node="remove" />

手動でproviderを追加するより、依存関係とManifestマージを修正します。

Androidの原因5:初期化より早くFirebaseへアクセスしている

トップレベル変数や静的オブジェクトで早期に取得すると、初期化順が分かりにくくなります。

避けたい例:

object Repository {
    val auth = FirebaseAuth.getInstance()
}

改善例:

class Repository {
    val auth by lazy {
        FirebaseAuth.getInstance()
    }
}

通常の自動初期化が正常ならApplication起動時に利用できますが、静的初期化へ依存しすぎない構成にします。

Androidの原因6:別プロセスで利用している

Manifestにandroid:processを指定したServiceなどからFirebaseを使うと、エラー文に次のようなプロセス名が出ることがあります。

com.example.app:remote

Firebase処理をメインプロセスへまとめることを優先します。

Androidの原因7:名前付きAppだけ作成した

FirebaseApp.initializeApp(
    context,
    options,
    "secondary"
)

これはsecondaryを作成し、[DEFAULT]は作成しません。

名前付きアプリを使う場合は、対象サービスへそのFirebaseAppを渡します。

val app = FirebaseApp.getInstance("secondary")
val firestore = FirebaseFirestore.getInstance(app)

Flutterの原因1:initializeAppを書いていない

void main() {
  runApp(const MyApp());
}

この状態でFirebaseAuth.instanceなどへアクセスするとcore/no-appになります。

Flutterの原因2:awaitしていない

避けたい例:

void main() {
  Firebase.initializeApp();
  runApp(const MyApp());
}

初期化完了を待ちます。

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(const MyApp());
}

Flutterの原因3:firebase_options.dartが古い

flutterfire configure
flutter clean
flutter pub get
flutter run

別Firebaseプロジェクトや別パッケージ名へ変更した場合は、現在の設定で生成し直します。

Flutterの原因4:別のmainファイル

lib/main_development.dart
lib/main_production.dart

実際にビルドしているエントリーポイントにも初期化処理が必要です。

flutter run --target lib/main_development.dart

登録済みFirebaseAppを確認する

Android:

FirebaseApp.getApps(applicationContext).forEach {
    Log.d("Firebase", "${it.name}: ${it.options.projectId}")
}

Flutter:

for (final app in Firebase.apps) {
  debugPrint('${app.name}: ${app.options.projectId}');
}

正常な単一プロジェクト構成では、通常[DEFAULT]が存在します。

手動初期化は最後の選択肢

特殊な構成ではFirebaseOptionsを指定できます。

val options = FirebaseOptions.Builder()
    .setApplicationId("APP_ID")
    .setApiKey("API_KEY")
    .setProjectId("PROJECT_ID")
    .build()

FirebaseApp.initializeApp(applicationContext, options)

通常のAndroidアプリでは、これを追加する前にJSON、プラグイン、生成リソース、Providerを修正してください。

確認順

Android

  1. JSONの配置
  2. Googleサービスプラグイン
  3. applicationIdとpackage_name
  4. 生成されたgoogle_app_id
  5. FirebaseInitProvider
  6. コードの実行順
  7. 別プロセス
  8. 名前付きFirebaseApp

Flutter

  1. firebase_core
  2. flutterfire configure
  3. firebase_options.dart
  4. WidgetsFlutterBinding.ensureInitialized()
  5. Firebase.initializeApp()をawait
  6. runApp()より前か
  7. 実際のmainファイル

まとめ

ネイティブAndroidでは、自動初期化の失敗原因を修正します。

Flutterでは、次の順番を守ります。

WidgetsFlutterBinding.ensureInitialized
→ Firebase.initializeAppをawait
→ runApp
→ Firebaseサービスを利用

逆に二重初期化エラーが出る場合はFirebaseApp [DEFAULT] already existsを確認してください。

一次情報

公式参考資料

Google PlayやFirebaseの画面・要件は変更される場合があります。公開作業の前に、リンク先の最新情報も確認してください。

Analytics設定

TestCrewは、Webサイトの改善のためGoogle LLCが提供するGoogle Analyticsを使用します。利用の可否を変更でき、変更後はこのページの以後の計測と次回以降の訪問に反映されます。 プライバシーポリシーを見る