Firebase Cloud Messaging Pu sh и уведомления в приложении - PullRequest
1 голос
/ 27 марта 2020

Теперь я могу отправить тестовое сообщение из консоли Firebase и получить уведомление pu sh на моем телефоне. У меня есть несколько вопросов о создании уведомления в приложении прямо сейчас. Это мой текущий макет.

enter image description here

Я хочу, чтобы уведомления pu sh отображались в приложении как уведомления в приложении. Единственный класс, обрабатывающий сообщение, - это класс MyFirebaseMessagingService, который включает notificationHelper для создания уведомления. Как передать информацию о сообщении из MyFirebaseMessagingService фрагменту уведомления, который у меня есть сейчас? Нужно ли сохранять информацию в локальном файле, а затем извлекать информацию из локального файла для повторного использования во фрагменте уведомлений? Каков наилучший подход в этом случае?

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        if (remoteMessage.getNotification() != null) {
            String title = remoteMessage.getNotification().getTitle();
            String body = remoteMessage.getNotification().getBody();
            NotificationHelper.displayNotification(getApplicationContext(), title, body);
        }
    }
}

Другой тривиальный вопрос касается проблемы с токеном FCM. Я уже создал токен FCM. Как заставить приложение проверять, был ли создан токен, чтобы предотвратить генерирование токена при каждом запуске приложения?

if(instanceIdResult.getToken() == null)
{
   //generate token
}

Могу ли я написать такой код?

Ответы [ 2 ]

2 голосов
/ 28 марта 2020
  1. Вы можете использовать комнату базы данных. Вы сохраняете все уведомления и затем показываете их во фрагменте. Если фрагмент уже показан, вы можете отправить и показать мгновенно с broadcastReceiver. Комната
  2. Токен FCM создается один раз. Токен регистрации может измениться, если:
    • Приложение удаляет идентификатор экземпляра
    • Приложение восстанавливается на новом устройстве
    • Пользователь удаляет / переустанавливает приложение
    • Пользователь очищает данные приложения.

Вы можете получить текущий токен следующим образом:

FirebaseInstanceId.getInstance().getInstanceId()
    .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
        @Override
        public void onComplete(@NonNull Task<InstanceIdResult> task) {
            if (!task.isSuccessful()) {
                Log.w(TAG, "getInstanceId failed", task.getException());
                return;
            }

            String token = task.getResult().getToken();

        }
    });
1 голос
/ 28 марта 2020

вы можете использовать sharedpreferences для хранения количества полученных вами уведомлений, а при открытии приложения показывать номер в уведомлении и, если пользователь прочитал их, сбросить счетчик. Также вы можете хранить токен тоже

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...