4

Firebaseを使用してAndroidアプリにデータを送信しようとしています。アプリがバックグラウンドで実行されている場合、データを送信して正常に保存できます。ただし、アプリが強制終了され、ユーザーがデータ付きの通知を受け取った場合、データは保存されません。

メソッドを使用FirebaseMessagingService.onMessageReceivedしてデータをキャプチャし、SharedPreferenceファイルに保存しています。私はfirebaseクラウドメッセージングについても読んでいます。しかし、私はサーバーを持っていません。firebase コンソールを使用しているだけです。

public void onMessageReceived(RemoteMessage remoteMessage) {            

  Log.d(TAG, "From: " + remoteMessage.getFrom());

  // Check if message contains a data payload.
  if (remoteMessage.getData().size() > 0) {
    Log.d(TAG, "Message data payload: " + remoteMessage.getData());
  }

  // Check if message contains a notification payload.
  if (remoteMessage.getNotification() != null) {
    Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
  }

  if (remoteMessage.getNotification() != null) {
    Log.d(TAG, "Message Notification Body Verse: " + remoteMessage.getData().get("verse"));
  }

  //sendNotification(remoteMessage.getNotification().getBody());    

  SharedPreferences sharedPref = this.getSharedPreferences(getString(R.string.preference_file_key),
                                   Context.MODE_PRIVATE);
  SharedPreferences.Editor editor = sharedPref.edit();
  Log.d("FIREBASE NOTIF SERVICE", remoteMessage.getNotification().getTitle());
  Log.d("FIREBASE NOTIF SERVICE", remoteMessage.getData().get("verse"));

  editor.putString(getString(R.string.preference_verse_title_key), remoteMessage.getNotification().getTitle());
  editor.putString(getString(R.string.preference_verse_content_key), remoteMessage.getData().get("verse"));
  editor.commit();
}
4

1 に答える 1