安卓基础(Firebase Cloud Messaging)
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,我可以接收推送消息了!