无法从Intent中提取数据 - Firebase推送通知

时间:2016-09-28 08:16:43

标签: android firebase firebase-notifications

我使用的是Firebase通知。要进行测试,我会从Firebase控制台发送通知。但在我的MainActivity我无法获取数据,我在控制台中设置了数据。

onMessageReceived(RemoteMessage msg)中的方法MyFirebaseService没有被调用(如果方法没有被调用 - 数据传输到MainActivity中的Intent)。但是我没有在Intent中看到这些数据。

例如: enter image description here 在调试中: enter image description here

1 个答案:

答案 0 :(得分:0)

如果使用控制台发送通知,则不将其视为有效负载,因此如果应用程序在后台运行,则不会调用onMessageReceived()方法。但是,如果应用程序在前台运行,它就会。

这是一个curl命令,通过curl作为有效负载发送通知,你必须使用shell来使用它。

curl -X POST --header "Authorization: key=<APIKEY>" --Header "Content-Type:
application/json" https://fcm.googleapis.com/fcm/send -d '{"to":"<YourToken>","data":{"type":"notification","message":"Hello, it works"}}'                     

**注意:删除&lt;&gt;。

你的onMessageReceived()方法看起来像这样来获取数据。

 @Override
public void onMessageReceived(final RemoteMessage remoteMessage) {
 try {
       String remote_type = remoteMessage.getData().get("type");
        if (remote_type.equals("notification")){
            String message = remoteMessage.getData().get("message");
            Log.d("ReceivedData", message);
        }
    }catch(NullPointerException e){ 
    }