Я использую Firebase для нашей службы обмена сообщениями в нашем приложении для Android. Я изучил Firebase совсем немного, и я понимаю, что будет ли приложение работать на переднем плане или теперь изменит тип данных, полученных в методе onMessageReceived.
То, что я пытаюсь выполнить, - это проанализировать входящие данные из Remotemessage и сделать что-то другое с ним в зависимости от пользовательского тега. IE, если в карте данных содержится поле под названием "My_Custom_Tag", я хочу полностью переопределить стандартное сообщение firebase, которое появляется и записывает пользовательский.
Проблема в том, что при запуске приложения в фоновом режиме запускается любой код, который я помещаю в onMessageReceived никогда. Он отлично работает, когда приложение работает на переднем плане, но ничего не обнаруживает и не получает, если приложение находится в фоновом режиме.
Вот пример кода ниже:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Map<String, String> aMap = remoteMessage.getData();
//Custom object here for easier parsing
PushNotificationsPojo pojo = this.convertResponseToPojo(aMap);
if(pojo == null){
passToFirebase(remoteMessage);
return;
}
if(pojo.getData().getCustomTag().equals(PushNotificationsPojo.ID_TAG_CHAT_MESSAGE)) {
createCustomNotification1(pojo);
} else if (pojo.getData().getCustomTag().equals(PushNotificationsPojo.ID_TAG_SOME_OTHER_MESSAGE)){
createCustomNotification2(pojo);
} else if (pojo.getData().getCustomTag().equals(PushNotificationsPojo.ID_TAG_STUFF_AND_WHATNOT)) {
createCustomNotification3(pojo);
} else {
passToFirebase(remoteMessage);
}
}
Мой вопрос: как мне перейти на редактирование MyFirebaseMessagingService, чтобы я мог проверять входящие данные, определять информацию о тегах и решать либо передать их на firebase, чтобы он мог использовать стандартную обработку, либо не передавать ее в firebase и написать собственное собственное уведомление о просмотре, пока мое приложение работает в фоновом режиме?
Спасибо всем!
PS, любой шанс Firebase-Dungeon-Master Frank van Puffelen подумать?