6

Chcę móc dodać więcej niż jeden identyfikator nadawcy w mojej aplikacji na Androida.Jak umieścić wiele identyfikatorów projektu/nadawców w google-services.json

Od https://developers.google.com/cloud-messaging/concept-options

GCM 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 centralizacji wszystkich działań związanych z wysyłaniem w jednej lokalizacji, GCM umożliwia każdemu z tych autorów wysyłanie własnych wiadomości.

W jaki sposób można to osiągnąć, używając pliku konfiguracyjnego google-services.json?

+0

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! –

+0

Jak to było @Zyoo? Czy byłeś w stanie to wytrenować? :) –

+0

@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

Odpowiedz

4

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.
+0

Czy odbywa się to przy użyciu jednego tokena rejestracji? Czy masz coś przeciwko udostępnieniu kodu, w którym żądasz tokena? – Zyoo

+0

Yup. Single registrationToken. Po prostu użyłem kodu z łączonego przeze mnie szybkiego startu. –

+0

Jak wysłać powiadomienie? Mam błąd "niezgodny identyfikator nadawcy" – Zyoo