我的设备没有收到其他通知 (FCM)
My device doesn't receive other notification (FCM)
我迁移到 Firebase 云消息传递,当我第一次尝试发送消息时,我在 Firebase 中使用控制台收到了一条通知,然后在几分钟后尝试发送另一条通知,但我不再收到另一条通知,但在我的 firebase 控制台中它说是Completed
更新
这是我的代码
主要活动
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkPlayServices();
Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken());
}
....
}
MyFirebaseInstanceIDService
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
sendRegistrationToServer(refreshedToken);
}
}
MyFirebaseMessagingService
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
}
// [END receive_message]
其他设备好像收到了,其他设备没收到。
由于 AdamK 的评论询问我是否在前台发送第二个通知,我发现只有当我的应用程序在后台时才会触发通知。
在文档中说 onMessageReceived()
,如果应用程序在前台处理 onMessageReceived()
中的数据和通知消息。因此,如果应用程序在前台,则不会自动触发通知,因此,为了做到这一点,您需要在 onMessageReceived()
回调中自己触发通知。
我在 onMessageReceived()
:
中调用自己的 sendNotification()
方法
sendNotification(remoteMessage.getNotification().getBody());
即使应用程序在前台也会显示通知。
我迁移到 Firebase 云消息传递,当我第一次尝试发送消息时,我在 Firebase 中使用控制台收到了一条通知,然后在几分钟后尝试发送另一条通知,但我不再收到另一条通知,但在我的 firebase 控制台中它说是Completed
更新
这是我的代码
主要活动
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkPlayServices();
Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken());
}
....
}
MyFirebaseInstanceIDService
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
sendRegistrationToServer(refreshedToken);
}
}
MyFirebaseMessagingService
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
}
// [END receive_message]
其他设备好像收到了,其他设备没收到。
由于 AdamK 的评论询问我是否在前台发送第二个通知,我发现只有当我的应用程序在后台时才会触发通知。
在文档中说 onMessageReceived()
,如果应用程序在前台处理 onMessageReceived()
中的数据和通知消息。因此,如果应用程序在前台,则不会自动触发通知,因此,为了做到这一点,您需要在 onMessageReceived()
回调中自己触发通知。
我在 onMessageReceived()
:
sendNotification()
方法
sendNotification(remoteMessage.getNotification().getBody());
即使应用程序在前台也会显示通知。