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

Flutter 3.3集成FCM生产模式无法获取Android设备令牌的配置方案

Flutter 3.3 + FCM 生产模式Android令牌获取问题排查与配置

一、检查Google服务配置文件

  • 确保生产环境用的google-services.json是从Firebase控制台下载的正式版配置文件,别用调试版。下载时要选对Android应用包名,并且把文件放在android/app/目录下。
  • 打开google-services.json,检查client字段里的oauth_client是否包含client_type: 3的条目,这是生产模式拿令牌必须的。

二、配置Android构建gradle

  • 在android/build.gradle里,确认Google服务插件版本适配Flutter 3.3,建议用com.google.gms:google-services:4.3.10及以上:
    dependencies {
        classpath 'com.google.gms:google-services:4.3.10'
    }
    
  • 在android/app/build.gradle的buildTypes中,release构建开了minifyEnabled的话,必须保留FCM相关规则:
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    
  • 在proguard-rules.pro里添加FCM混淆规则,防止核心代码被搞坏:
    -keep class com.google.firebase.** { *; }
    -keep class com.google.android.gms.** { *; }
    -keep class androidx.core.app.** { *; }
    -keep public class com.google.firebase.messaging.FirebaseMessaging {
        public void getToken(...);
    }
    

三、验证FCM依赖配置

  • 在pubspec.yaml里确认firebase_messaging版本适配Flutter 3.3,建议用^14.0.0及以上的稳定版,同步依赖后执行flutter pub get。
  • 确保firebase_core初始化正确,应用启动时必须调用:
    void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        await Firebase.initializeApp();
        runApp(MyApp());
    }
    

四、生产模式令牌获取逻辑检查

  • 调用FirebaseMessaging.instance.getToken()时,一定要处理异常,打印错误日志方便排查:
    Future<void> getFCMToken() async {
        try {
            String? token = await FirebaseMessaging.instance.getToken();
            if (token != null) {
                print("FCM生产令牌: $token");
            } else {
                print("令牌获取为空");
            }
        } catch (e) {
            print("获取令牌失败: $e");
        }
    }
    
  • 确认android/app/src/main/AndroidManifest.xml里加了INTERNET权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • 检查设备网络是否正常,有没有代理或防火墙挡住和Firebase服务器的通信。

五、签名与发布配置

  • 生产模式必须用正式签名密钥构建APK/AAB,而且Firebase控制台已经添加了该签名的SHA-1和SHA-256指纹。可以用下面的命令获取指纹:
    keytool -list -v -keystore your-release-key.jks
    
  • 去Firebase控制台的应用设置里,确认已经添加了发布版的SHA指纹,不然FCM会拒绝令牌请求。

内容的提问来源于stack exchange,提问作者สวนผักหลังบ้าน ปลูกผักกินเอง

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:20:48