FCM Token 是什么?
FCM Token(Firebase Cloud Messaging Token) 是一个 唯一的标识符,用于区分设备,Firebase 服务器 通过 Token 知道要把消息推送到哪个设备。
为什么需要 FCM Token?
你的 App 需要一个唯一 ID,这样 Firebase 服务器才能准确地把推送消息发送给这个设备。
就像每个人的手机号码一样,别人发短信给你时,必须知道你的号码。FCM Token 就相当于你的 App 设备的“手机号码”! 📱
流程
- 你在代码里调用
FirebaseMessaging.getInstance().getToken()
- Firebase 服务器会生成一个唯一的 Token,然后发送到你的手机
- 手机上的 App 获取这个 Token,并可以在
Logcat
里打印出来
如何获取 FCM Token?
在 Android App 里,你可以这样获取 FCM Token:
// 引入所需的 Android 类
import android.os.Bundle; // 用于管理 Activity 的生命周期
import android.util.Log; // 用于日志输出,方便调试
import com.google.firebase.messaging.FirebaseMessaging; // FCM 推送消息服务
import androidx.appcompat.app.AppCompatActivity; // 兼容性 Activity,适用于大多数 Android 版本
// 定义 MainActivity 类,并继承 AppCompatActivity
public class MainActivity extends AppCompatActivity {
// 定义一个日志 TAG,用于在 Logcat 中标识日志输出
private static final String TAG = "FCM-Demo";
// Activity 生命周期中的 onCreate 方法(当 Activity 创建时执行)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 调用父类的 onCreate 方法,初始化 Activity
setContentView(R.layout.activity_main); // 设置界面布局文件 activity_main.xml
// 获取 FCM Token(Firebase Cloud Messaging 的唯一标识符)
FirebaseMessaging.getInstance().getToken() // 通过 Firebase 获取当前设备的推送 Token
.addOnCompleteListener(task -> { // 添加一个监听器,处理获取 Token 任务的结果
if (!task.isSuccessful()) { // 检查是否获取失败
Log.w(TAG, "获取 FCM Token 失败", task.getException()); // 记录错误信息
return; // 退出方法
}
// 如果成功,获取 Token 并存储到字符串变量中
String token = task.getResult();
// 在 Logcat 输出 Token,用于调试
Log.d(TAG, "FCM Token: " + token);
});
}
}
代码解读
✅ FirebaseMessaging.getInstance().getToken():从 Firebase 服务器获取当前设备的推送 Token。
✅ addOnCompleteListener:异步回调,获取 Token 成功或失败后都会触发这个监听器。
✅ task.isSuccessful():检查获取 Token 是否成功,失败时记录日志。
✅ Log.d(TAG, "FCM Token: " + token);:打印获取到的 Token,方便在 Logcat 查看。
完整流程(图示)
1. 手机 App 请求 Token ——> 2. Firebase 生成 Token ——> 3. Firebase 发送 Token 给手机
makefile
复制
编辑
手机App: Firebase,我要一个 Token!
⬇️
Firebase 服务器: 这是你的 Token!
⬇️
手机App: 收到 Token,我可以接收推送消息了!