我在这里总结步骤,希望能对您有所帮助。
步骤1
请参考
FCM用户指南。通过从
Firebase控制台推送消息确保一切正常运行。
步骤2
将您的自定义FirebaseMessagingService类更改如下:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
startActivity(new Intent(this, SplashActivity.class));
}
}
现在再次使用Firebase控制台推送消息,您会发现只有当您的应用程序在前台时才会触发
onMessageReceived
。因为Firebase控制台只能发送
通知消息
。为了发送
数据消息
,我们需要进行第三步。
第三步
安装Google高级REST客户端
输入以下参数:
url: https://fcm.googleapis.com/fcm/send
method: POST
Raw header:
Content-Type: application/json
Authorization:key=YOUR_SERVER_KEY
Raw payload:
{
"to" : "YOUR_DEVICE_FCM_TOKEN",
"data" : {
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
}
YOUR_SERVER_KEY可以在Firebase控制台的设置面板中找到,进入Cloud Messaging选项卡。
YOUR_DEVICE_FCM_TOKEN是在onTokenRefresh()
方法中使用FirebaseInstanceId.getInstance().getToken()
获取的。
注意:
未经用户交互即启动UI界面会导致不良的用户体验,您可能需要将启动活动更换为后台服务或类似操作。我只是出于测试目的使用活动,因此它比服务更加直观。感谢@2ndgab介绍了Google高级REST客户端工具。