Android i FCM

0

Pytanie raczej o doświadczenia osób tutaj z FCM, niż konkretną odpowiedź.
Problem z dotarciem powiadomień z Firebase u części użytkowników.

W aplikacji której utrzymaniem i rozwojem na ten moment zajmuję się praktycznie sam mamy wysyłanych sporo powiadomień.
Klient był dosyć łasy na różne rodzaje powiadomień, więc ten moduł z mojej strony został dosyć dopracowany i zbudowany tak, by można było dodawać (relatywnie) łatwo nowe rodzaje.
Dość powiedzieć, że jakby to wszystko podsumować, to pi razy oko, z panelu CMS -> nasz serwer -> FCM można by wysłać powiadomienia do 30-40 różnych grup użytkowników + indywidualne. No ale mniejsza z tym.

Większość tych powiadomień jest wysyłanych na topic i jeśli jest subskrypcja do danego tematu od użytkownika, to jest wysyłane przez FCM do niego. Jest kilka rodzajów wysyłanych powiadomień bezpośrednio do danego użytkownika na token/id z którym się zarejestrował, ale to pojedyńcze przypadki.

Wyświetlanie powiadomień w telefonie jest ustawione tak, że może być wyświetlonych wiele na raz ( na belce z powiadomieniami), ale tylko jedno z danego topic w tym samym czasie. Czyli np. powiadomienia na topic A i B będą wyświetlone w tym samym czasie i jeśli przyjdzie nowe na topic A, to stare z topic A zostanie podmienione na nowe. Oczywiście przy założeniu, że user nic z tymi powiadomieniami nie robił.

Wedle moje wiedzy, wszystkie powiadomienia w systemie Android muszą przejść przez FCM na pewnym etapie.

Problem leży w tym, że czasem powiadomienia dochodzą z opóźnieniem kilkuminutowym, kilkunastominutowym lub w ogóle. W większości dochodzą średnio dobrze albo zadowalająco dobrze.

  • nie udało mi się znaleźć żadnej informacji w dokumentacji Firebase o jakimś kolejkowaniu lub opóźnieniu jeśli powiadomienie ( na topic) jest wysyłane do dużej ilości użytkowników ( no a np. 2000 - max 15000 to chyba nie jest jakoś specjalnie dużo?)
  • większość odpowiedzi ze stackoverflow, blogów i tematów na różnych forach można by sprowadzić do wskazania połączenia internetowego pomiędzy telefonem a wi-fi/siecią telefoniczną jako prawdopodobną przyczyną problemu ( no a to raczej jest poza moją kontrolą) - wspominana jest możliwość zabicia otwartego połączenia dla FCM przez wifi/sieć jeśli telefon nie daje oznak życia przez odpowiednio długi czas
  • wspominane jest o możliwości ustawienia priorytetu powiadomienia na "high", ale to jest wartość domyślna w powiadomieniach i z tym nic nie majstrowaliśmy

Reszty konkluzji które miałem dokładnie nie pamiętam, bo rozwiązań tego problemu szukałem raczej na raty, z doskoku gdy ktoś zapytał.
Może ktoś będzie mieć coś ciekawego do powiedzenia. Nie oczekuję odpowiedzi "zrób tak a tak i wszystko się naprawi", raczej jakaś dyskusja ( niech nasz dział forum ma ciekawe tematy). Chociaż byłoby fajnie, gdyby ktoś miał taką wiedzę tajemną:).

0

O ile pamiętam z dokumentacji, nie ma gwarancji, że push dotrze natychmiast i nie ma żadnych gwarancji co do czasu dostarczenia, ani kolejności dostarczenia według kolejności wysłania. Nic zasadniczo nie możesz na to poradzić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1