FirebaseMessasingService получает уведомления от моего сервера, но если я использую FirebaseConsole, мой класс не вызывается - PullRequest
0 голосов
/ 27 июня 2018

Вот что у меня внутри AndroidManifest:

    <service android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    <service android:name="io.smooch.core.service.SmoochService" />
    <service android:name=".MyFirebaseInstanceIDService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

Я использую версию: implementation 'com.google.firebase:firebase-messaging:17.0.0'

Вот так выглядит мой FirebaseMessagingService:

public class MyFirebaseMessagingService extends FirebaseMessagingService {

public void onMessageReceived(final RemoteMessage message) {
    Log.i("", "MyFirebaseMessagingService onMessageReceived");
    final Map data = message.getData();
    FcmService.triggerSmoochNotification(data, this);
    final Map bundle = data;
    Handler handler = new Handler(Looper.getMainLooper());
    handler.post(new Runnable() {
        @Override
        public void run() {
            Log.i("", "GLOBAL intances  before GCM:" + Realm.getGlobalInstanceCount(PSApplicationClass.Config));
            try {
                String title = getString(R.string.alert_title_warning) + " " + getString(R.string.trips_remaining_free, user.getTrips_left());
                String message = getString(R.string.alert_freemium_upgrade);
                Notification.generateNotificationStandard(MyFirebaseMessagingService.this, title, message, null, null, false, false);
            } catch (Exception e) {
                Utils.appendLog("GCMIntentService onMessageReceived error: " + e.getMessage(), "E", Constants.PUSH_NOTIFICATIONS);
            }
        }
    });

}

}

И в основном я ставлю точку останова на onMessageReceived этой функции.

Если сервер отправит уведомление в мое приложение, оно будет получено этой службой, и я могу обработать его по мере необходимости. НО. Если я использую FirebaseConsole -> GROW -> Could Messaging -> я создаю новое сообщение и отправляю его. Мое приложение будет получать уведомления. но он будет создан "автоматически" без ввода моего метода onMessageReceived. Как я могу заставить это сделать? Это данные, которые я отправляю через консоль: https://s3.amazonaws.com/uploads.hipchat.com/39260/829560/7Pp0KJIErZ8XVZZ/upload.png

Что я делаю не так?

EDIT:

Как я уже сказал, я получаю уведомления, но уведомления создаются автоматически, а не через мою службу FirebaseMessaging.

Мне удалось изменить значок следующим образом:

<meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/notification_icon" />

Но мне все равно нужно запускать другой код, когда я его получаю, а не просто показывать его. а то я не знаю как

...