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

能否在应用数据中找到FCM注册令牌?如何获取设备本地FCM注册令牌用于推送测试?

FCM注册令牌相关问题解答

针对你问的两个问题——能不能在应用数据里找到FCM注册令牌,以及测试阶段无需额外开发怎么获取——我结合Android和iOS平台的实际情况给你拆解下:

核心结论

部分平台可以在应用数据中找到令牌,但不是所有平台都可行,且操作步骤因平台而异。

Android平台:可以直接在应用SharedPreferences中查找

如果你开发的是Android应用,FCM令牌通常会存在应用的SharedPreferences存储里,具体位置取决于你的FCM集成方式:

  • 用Firebase官方SDK默认集成的话,令牌一般存在名为com.google.firebase.messaging的SharedPreferences文件中,对应的键名可能是registration_ids或者token
  • 你可以通过Android Studio的Device File Explorer来查看:找到对应应用包名的文件夹,进入/data/data/[你的应用包名]/shared_prefs/目录,打开上述文件就能看到令牌值
  • 也可以用adb命令导出文件查看,比如执行:
    adb pull /data/data/[你的应用包名]/shared_prefs/com.google.firebase.messaging.xml ./
    
    然后用普通文本编辑器打开导出的文件即可。

iOS平台:无法直接在应用数据中获取

iOS的机制和Android不同,FCM令牌是依托APNs生成的,SDK获取后会存在系统的安全存储区域,你没法直接通过文件系统访问到应用沙盒里的令牌数据。

这种情况下,临时加一行日志代码是最快捷的测试方式:

// Swift示例代码
Messaging.messaging().token { token, error in
    if let error = error {
        print("获取FCM令牌失败: \(error.localizedDescription)")
    } else if let token = token {
        print("FCM注册令牌: \(token)")
    }
}

运行应用后,在Xcode的控制台就能直接复制令牌,用来测试推送通知了。

测试阶段的小建议

如果只是临时测试用,其实不管哪个平台,在代码里加日志输出令牌都是最稳妥的方式——比找应用数据更直接,还能避免不同SDK版本存储路径变化带来的麻烦。测试完成后记得把这段日志代码删掉或者注释掉就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:42:35