AKTUALIZACJA: Przechodzimy, aby odwołać się do oficjalnej i zalecanej metody wykonywania tego zamiast hacky i nieoficjalnego podejścia do zapobiegania/unikania nieznanych problemów. Z mojej odpowiedzi here.
Tu jest rzeczywiście część w documentation na ten temat:
Odbieranie wiadomości z wielu nadawców
FCM pozwala wielu stron, aby wysyłać wiadomości do tej samej aplikacji klienckiej. Załóżmy na przykład, że aplikacja kliencka jest agregatorem artykułów z wieloma autorami i każdy z nich powinien mieć możliwość wysłania wiadomości podczas publikowania nowego artykułu. Ta wiadomość może zawierać adres URL, aby aplikacja kliencka mogła pobrać artykuł. Zamiast centralizować wszystkie operacje wysyłania w jednym miejscu, FCM umożliwia każdemu z tych autorów wysyłanie własnych wiadomości. Aby uzyskać taką możliwość, upewnij się, że każdy nadawca generuje własny kod sender ID. Zobacz dokumentację klienta dla swojej platformy, aby uzyskać informacje o tym, jak uzyskać identyfikator nadawcy FCM. Podczas żądania rejestracji aplikacja kliencka pobiera token wiele razy, za każdym razem z innym identyfikatorem nadawcy w polu odbiorców.
Na koniec udostępnij token rejestracji odpowiednim serwerom aplikacji (aby ukończyć uzgadnianie klienta/serwera rejestracji FCM), a oni będą mogli wysyłać wiadomości do aplikacji klienckiej za pomocą własnych kluczy uwierzytelniających.
Należy pamiętać, że istnieje limit 100 wielokrotnych nadawców.
myślę mylące, ale ważnym elementem jest tutaj:
przypadku żądania rejestracji, aplikacja klient pobiera token wiele razy, za każdym razem z innym ID nadawcy w polu publiczności.
Innymi słowy, trzeba zadzwonić getToken()
minięciu Sender ID i po prostu "FCM"
(np getToken("2xxxxx3344", "FCM")
) jako parametrów. Musisz się upewnić, że wywołasz to dla każdego nadawcy (projektu) , którego potrzebujesz.
również pamiętać, ze getToken()
docs:
Jest to funkcja blokująca więc nie nazywaj go na głównym wątku.
Niektóre dodatkowy dobry-do-wie:
- To nie auto ponownie, jeśli nie jak domyślny.
- Zwraca wyjątek IOException, gdy się nie powiedzie.
Odpowiem tutaj na Twój komentarz. Ponieważ długie łańcuchy komentarzy spowodowałyby usunięcie twojego posta. Śmiało. FCM jest łatwy w konfiguracji. Twoje zdrowie! –
Jak to było @Zyoo? Czy byłeś w stanie to wytrenować? :) –
@intj Próbowałem twojej metody, ale dostałem wyjątek '06-23 21: 24: 07.009 7149-8358/com.google.firebase.quickstart.fcm D/FirebaseInstanceId: synchronizacja w tle nie powiodła się: INVALID_SENDER, spróbuj ponownie w latach 80.' ' 06-23 21: 24: 51.959 7149-7149/com.google.firebase.quickstart.fcm D/MainActivity: token InstanceID: null' – Zyoo