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

物理设备FirebaseMessaging报FIS_AUTH_ERROR,无法获取FCM令牌

解决FCM物理设备获取令牌报FIS_AUTH_ERROR问题

问题背景

已集成Firebase依赖:

implementation platform('com.google.firebase:firebase-bom:32.2.0')     
implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0'     
implementation 'com.google.firebase:firebase-messaging-ktx:23.2.0'

获取FCM令牌代码:

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Toast.makeText(baseContext, "Fetching FCM registration token failed", Toast.LENGTH_SHORT).show()
        return@OnCompleteListener
    }
    val token = task.result
    Toast.makeText(baseContext, token, Toast.LENGTH_SHORT).show()
})

模拟器运行正常,但多台物理设备均抛出FIS_AUTH_ERROR异常。


排查与解决步骤

  • 检查Firebase控制台的SHA指纹配置
    物理设备使用的签名(调试/发布版)对应的SHA-1和SHA-256指纹必须添加到Firebase项目中。模拟器默认使用Android Studio自带的调试密钥库,其指纹通常已在Firebase控制台配置,但物理设备如果使用自定义签名或发布签名,指纹不匹配会直接导致认证失败。
    获取指纹命令:

    keytool -list -v -keystore 你的签名文件路径.jks -alias 签名别名
    

    登录Firebase控制台→项目设置→添加指纹,将获取到的SHA-1和SHA-256填入保存。

  • 替换最新的google-services.json
    添加指纹后,必须从Firebase控制台下载最新的google-services.json文件,替换项目app目录下的旧文件,然后执行Clean Project和Rebuild Project操作。

  • 验证网络与权限配置

    • 确保物理设备能正常访问Google服务,避免代理、翻墙或网络限制导致无法连接Firebase服务器。
    • 检查AndroidManifest.xml中是否添加了必要权限:
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      
  • 更新Google Play服务
    物理设备上的Google Play服务版本过低会引发认证错误。打开设备的Google Play商店,搜索并更新Google Play服务到最新版本。

  • 确认签名配置正确性
    检查项目build.gradle(Module level)中的签名配置,确保打包时使用的签名文件和别名与Firebase控制台添加的指纹完全对应:

    android {
        signingConfigs {
            release {
                storeFile file("你的签名文件路径.jks")
                storePassword "你的密钥库密码"
                keyAlias "你的签名别名"
                keyPassword "你的密钥密码"
            }
            debug {
                storeFile file("~/.android/debug.keystore") // 默认调试密钥库
            }
        }
        buildTypes {
            release {
                signingConfig signingConfigs.release
                // ...其他配置
            }
            debug {
                signingConfig signingConfigs.debug
                // ...其他配置
            }
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:37:26