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

关于Firebase Cloud Messaging(FCM)注册令牌位置及消息发送日志的技术咨询

嘿,针对你关于FCM的两个问题,我整理了详细的解答:

1. 如何找到FCM注册令牌?

注册令牌的获取方式主要取决于你的应用平台,同时也可以从你自己的后端存储中查询(如果之前上传过):

  • Android平台:在App代码中调用FirebaseMessaging.getInstance().getToken()方法,在成功回调里就能拿到令牌。你可以在这里把令牌打印到Logcat,或者上传到你的后端服务器。另外,若启用了Firebase Analytics,部分场景下能在控制台的用户属性中看到,但最可靠的方式还是通过代码获取。
  • iOS平台:调用Messaging.messaging().token(completion:)方法,在回调闭包中获取令牌。你可以将其输出到Xcode控制台,或者同步到你的服务端存储。
  • Web平台:通过firebase.messaging().getToken({vapidKey: "你的VAPID密钥"})获取令牌,拿到后可存在浏览器的localStorage或发送至后端。
  • 后端存储:如果你的应用已经将用户的令牌上传并存储到了自己的数据库中,直接从数据库查询是最直接的方式。
2. FCM注册令牌的存储位置、自动发送时机,以及通知日志检查

存储位置

  • 设备端:FCM SDK会自动将令牌存在设备的本地存储中(Android用SharedPreferences,iOS用Keychain,Web用IndexedDB或localStorage),但这是SDK内部管理的,开发者一般不需要直接读取,通过SDK提供的API获取即可。
  • 服务端:FCM官方不会帮你存储用户的注册令牌,你需要在获取到令牌后自行将其存储到你的后端数据库,这样后续发送通知时才能调用FCM接口推送。

令牌自动发送时机

  • 当App首次安装启动时,FCM SDK会自动向FCM服务器发起注册请求,成功后获取到令牌。
  • 当令牌过期、设备恢复出厂设置、App卸载重装、应用数据被清除等状态变化时,SDK会自动重新请求新的令牌,这时候你需要监听令牌刷新事件,及时更新后端存储的旧令牌。

通知发送日志检查

你可以从设备端和Firebase控制台/后端两个维度检查日志:

  • 设备端日志:
    • Android:在Logcat中过滤FirebaseMessaging或FCM关键词,能看到令牌注册、消息接收的相关日志,比如Registered with FCM token: xxx或Received message这类条目。
    • iOS:在Xcode控制台中过滤FirebaseMessaging,可查看令牌注册、消息处理的详细日志。
    • Web:在浏览器开发者工具控制台中,先调用firebase.messaging().setLogLevel('debug')开启调试模式,就能看到FCM的详细交互日志。
  • 控制台/后端日志:
    • 若通过Firebase控制台发送通知,可在「Cloud Messaging」页面找到对应通知记录,点击查看送达数、点击数等状态数据。
    • 若使用FCM Admin SDK从后端发送消息,可在代码中添加日志记录请求响应,响应里会包含消息的发送状态(成功/失败、错误码等);如果用了Cloud Functions发送,还能在Firebase控制台的「Cloud Functions」板块查看执行日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:49:08