당신은 통지를 보내도록 콘솔을 사용하는 경우는 페이로드로 간주되지 않으므로 응용 프로그램이 백그라운드에서 실행중인 경우,이 방법은 onMessageReceived() 호출되지 않습니다. 하지만 응용 프로그램이 포 그라운드에서 실행되는 경우 않습니다.
curl을 통해 페이로드로 알림을 보내려면 여기에 셸을 사용해야합니다.
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"}}'
** 참고 : <을 제거>.
데이터를 가져 오기 위해 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){
}
죄송합니다. 나는 약간 혼란 스럽다. [RemoteMessage.getData()] (https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/RemoteMessage.html#getData())를 사용하여 데이터 페이로드? 또한 이미지 대신 텍스트로 코드를 게시하십시오. 'onMessageReceived()'를 포함하십시오. –
@AL. 예, 가능합니다. onMessageReceived() 메서드가 – Artem
이라고 불리는 경우에만 가능합니다. 앱이 백그라운드 일 경우 onMessageReceived()가 호출되지 않습니다. 포 그라운드에서 앱으로 확인 했습니까? –