关于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的详细交互日志。
- Android:在Logcat中过滤
- 控制台/后端日志:
- 若通过Firebase控制台发送通知,可在「Cloud Messaging」页面找到对应通知记录,点击查看送达数、点击数等状态数据。
- 若使用FCM Admin SDK从后端发送消息,可在代码中添加日志记录请求响应,响应里会包含消息的发送状态(成功/失败、错误码等);如果用了Cloud Functions发送,还能在Firebase控制台的「Cloud Functions」板块查看执行日志。
内容的提问来源于stack exchange,提问作者playerone
相关产品推荐
相关产品推荐

