You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase/Flutter Play Integrity初始化代码应放置在何处?

Firebase App Check Play Integrity 初始化问题解决指南

1. 先补全必要依赖

Flutter 端依赖

在项目根目录的pubspec.yaml里的dependencies块中添加:

dependencies:
  firebase_core: ^最新版本号
  firebase_app_check: ^最新版本号

执行flutter pub get拉取依赖。

Android 端依赖

打开android/app/build.gradle,在dependencies下添加:

implementation "com.google.firebase:firebase-appcheck-playintegrity:最新版本号"

(版本号可参考Firebase官方最新稳定版,当前常用16.0.0左右)

2. 初始化代码的正确位置

推荐方案:自定义 Application 类

  1. 在android/app/src/main/java/[你的项目包名]/路径下创建MyApplication.java,代码如下:
package com.your.package.name; // 替换成你实际的包名

import android.app.Application;
import com.google.firebase.FirebaseApp;
import com.google.firebase.appcheck.FirebaseAppCheck;
import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseApp.initializeApp(this);
        FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
        firebaseAppCheck.installAppCheckProviderFactory(
                PlayIntegrityAppCheckProviderFactory.getInstance());
    }
}
  1. 打开android/app/src/main/AndroidManifest.xml,在<application>标签里加上android:name=".MyApplication",示例:
<application
    android:name=".MyApplication"
    android:label="你的应用名"
    android:icon="@mipmap/ic_launcher">
    <!-- 其他原有内容 -->
</application>

备选方案:MainActivity 中初始化

如果不想自定义Application,也可以把代码放在MainActivity.java的onCreate方法里,要放在Flutter初始化之前:

package com.your.package.name;

import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import com.google.firebase.FirebaseApp;
import com.google.firebase.appcheck.FirebaseAppCheck;
import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory;

public class MainActivity extends FlutterActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FirebaseApp.initializeApp(this);
        FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
        firebaseAppCheck.installAppCheckProviderFactory(
                PlayIntegrityAppCheckProviderFactory.getInstance());
    }

    // 其他原有方法...
}

3. Flutter 端的配合初始化

在main.dart里还要完成Firebase核心和App Check的初始化:

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  // 激活App Check,指定Android用Play Integrity
  await FirebaseAppCheck.instance.activate(
    androidProvider: AndroidProvider.playIntegrity,
    // web端需要的话填reCAPTCHA密钥,移动端可以留空
  );
  runApp(const MyApp());
}

常见坑点排查

  • 包名不匹配:确保Java文件的包名和AndroidManifest里的包名完全一致
  • 版本冲突:检查Firebase相关依赖的版本是否兼容,尽量用同大版本的依赖
  • 控制台未配置:要先在Firebase控制台的App Check设置里启用Play Integrity提供商,并且配置好应用的签名信息

内容的提问来源于stack exchange,提问作者Bernhard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:45:58