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

_firebaseMessaging.getToken()在旧安卓设备无法正常工作求助

Firebase Token 获取异常(Redmi Note 4 Android 7.0 MIUI 11.0.2)

问题代码

_firebaseMessaging.getToken().then((token) {
      assert(token != null);
      deviceToken = token;
    });

该代码在多数安卓设备上运行正常,但在Redmi Note 4(Android版本:7.0 NRD90M,MIUI版本:MIUI Global 11.0.2)出现异常,以下是可能的问题原因:

  • Firebase SDK 版本兼容性问题
    Android 7.0(API 24)属于较旧的系统版本,若使用的Firebase Messaging SDK版本较新,可能存在适配缺失。部分新版本SDK会逐步放弃对旧系统的支持,导致在该设备上无法正常完成Token请求。

  • MIUI 系统权限与策略限制
    MIUI 11的后台管理和联网管控较为严格,可能限制了应用的后台联网能力,直接拦截Firebase的Token获取请求;同时MIUI自带的推送服务可能与Firebase推送存在冲突,干扰Token生成流程。

  • 必要权限缺失
    Firebase Messaging需要INTERNET和ACCESS_NETWORK_STATE权限,若应用清单未正确声明,会导致网络请求失败。此外,该设备可能需要手动开启应用的「后台数据」权限,否则应用在后台无法完成Token获取的网络交互。

  • 断言语句触发崩溃
    代码中的assert(token != null)在调试模式下,会在Token返回null时直接触发断言错误导致崩溃;正式包中断言虽会被忽略,但此时deviceToken会被赋值为null,引发后续逻辑异常。

  • Google Play Services 版本过低
    Firebase Messaging依赖Google Play Services,Redmi Note 4作为旧设备,安装的Google Play Services版本可能无法兼容当前使用的Firebase SDK,导致Token获取流程失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:34:43