Gelesene Notification überall löschen

  • Antworten:0
Volkan Aydin
  • Forum-Beiträge: 187

12.05.2021, 13:17:01 via Website

Guten Tag mitteinander. Ich habe es soweit geschafft das Notifications genau so aussehen wie sie sollen, sie haben Icons, Buttons, und laden das was sie sollen in Activitys und Broadcasts.

Nun bin ich aber auf ein Problem gestossen, das nirgends erwähnt wird (soweit mein english das glaubt)
-Ich habe per Firebase Database eine Gruppe
-Wenn sich nun jemand dieser Gruppe anschliessen will, bekommt er erstmal den status 1.
-Firebase functions löst nun einen Trigger aus, und sendet jedem Moderator und Administrator dieser Gruppe eine FCM.
Diese sind so angelegt, wenn jemand mehrere Geräte nutzt ( Tablet und Handy etc. ), alle Tokens sammelt, und diese dann an alle geräte sendet.

const message =   {
  data: {
    [INTENT_FCM_TYP]: typ,
    [INTENT_FCM_ID_USER]:id_user,
    [INTENT_FCM_ID_TEAM]:id_team
  },
  tokens: token
  };
 return  await admin.messaging().sendMulticast(message)
          .then((response) => {
            if (response.failureCount > 0) {
              const failedTokens:String[] = [];
              response.responses.forEach((resp, idx) => {
                if (!resp.success) {
                  failedTokens.push(token[idx]);
                }
              });
              console.log('List of tokens that caused failures: ' + failedTokens);
            }
        })

Nun wird die Notification in den geräten ausgelöst.

NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(context, channelId).......

Das alles klappt wunderbar. Nun das Problem
Wie gestalt ich es besten, das wenn einer der Moderatoren oder Administratoren, die aufnahme des Mitgleides bestätigen. Also den Status auf 2 setzten, das bei allen die Notification wieder verschwindet?

Meine Idee währe umständlich... z.b.
-bereits in Firebase Function die ChannelId generieren
-diese in der Firebase Database ablegen, und allen geräten senden.
-bei erneuten status wechsel, erneut triggern, eine weitere Message senden, diese so empfangen das es "vermutlich"

NotificationManager notificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    notificationManager.cancel();

aufruft?

Gibt es da eine andere Lösung? Ich habe Lange versucht Flags zu verändern, da mein English begrenz ist, und ich dachte, mit diesen Lässt sich das regeln.... "irrtum?!?" ;)....

vielen dank schonmal im Vorraus!

Beantworte die Frage als Erster