Korzystanie z Firebase Cloud Messaging (FCM) z chrome.gcm

Za pomocą chrome.gcm możesz wysyłać i odbierać wiadomości od użytkowników końcowych. Jest ona zbudowana na podstawie Komunikacji w chmurze Firebase (FCM) i korzysta z zewnętrznej usługi, którą musisz skonfigurować. Ten samouczek zawiera wszystkie niezbędne czynności, które należy wykonać, aby funkcja działała w Twoim rozszerzeniu.

Chociaż chrome.gcm jest nadal obsługiwane, zostało utworzone ponad dekadę temu, zanim pojawił się standard Push. Zwykle sprawdzoną metodą jest korzystanie ze standardu internetowego zamiast interfejsu API odpowiedniego dla danej rozszerzenia. Jeśli nie musisz używać chrome.gcm, zalecamy korzystanie z push.

Wymagania wstępne

Aby korzystać z usługi chrome.gcm, musisz skonfigurować konto Firebase.

Strona główna Firebase.com
Strona główna Firebase.com

Po utworzeniu konta otwórz konsolę Firebase i wybierz istniejący projekt do użycia lub utwórz nowy dla tego rozszerzenia.

Zrzut ekranu z listą projektów w konsoli Firebase
Listy projektów w konsoli Firebase

Przejdź do strony ustawień usługi Cloud Messaging.

Zrzut ekranu strony ustawień Komunikacji w chmurze Firebase
Strona ustawień Komunikacji w chmurze Firebase

Jeśli masz już w tym projekcie konto przesyłania wiadomości w chmurze, skopiuj podany numer identyfikatora nadawcy.

Jeśli nie masz włączonej usługi przesyłania wiadomości w chmurze, musisz włączyć interfejs Cloud Messaging API w Firebase w projekcie w Google Cloud. Na poniższym obrazku widać, gdzie w ustawieniach Firebase znajduje się link do tej strony.

Zrzut ekranu pokazujący lokalizację linku umożliwiającego włączenie interfejsu Firebase Messaging API w Google Cloud.
Otwieranie linku do ustawień Google Cloud w Firebase

Po włączeniu tej funkcji wróć na stronę ustawień usługi Cloud Messaging i skopiuj identyfikator nadawcy.

Konfigurowanie chrome.gcm

Teraz, gdy masz już identyfikator nadawcy z Firebase, możesz skonfigurować rozszerzenie tak, aby nasłuchiwało wiadomości. Na początek sprawdź, czy w uprawnieniu manifest.json masz włączone uprawnienie gcm

  {
    "manifest_version": 3,
    ...
    "permissions": ["gcm"]

Masz teraz dostęp do interfejsu API chrome.gcm. Aby zarejestrować się na nasłuchiwanie wiadomości push, wywołaj chrome.gcm.register

Odsłuchiwanie wiadomości

Gdy rozszerzenie zarejestruje Twój identyfikator nadawcy, musisz dodać kod do obsługi przychodzących wiadomości.

Firebase bez Firebase

Chociaż usługa chrome.gcm zawsze przechodzi przez Firebase, Firebase można skonfigurować jako serwer proxy dla zewnętrznych dostawców wiadomości push. Zazwyczaj dostawcy wyraźnie informują o obsługiwaniu rozszerzeń Chrome, ale powinien działać każdy dostawca, który obsługuje powiadomienia push w Firebase. Jeśli Twój dostawca podaje, że obsługuje starsze powiadomienia push Firebase, wypróbuj je. Jeśli wystąpią problemy, możesz skontaktować się z zespołem pomocy dostawcy, aby uzyskać informacje o ograniczeniach.

Kanały i tematy

chrome.gcm używa starszych interfejsów API Messaging Firebase. Jest to ważne, ponieważ starszy interfejs API nie obsługuje kanałów wiadomości. Każda przekazana wiadomość dotrze do każdego klienta. Jeśli rozszerzenie użytkownika interesuje się tylko podzbiorem wiadomości, musisz je przefiltrować samodzielnie.

Chociaż Firebase to konto bezpłatne, opłaty są naliczane po przekroczeniu określonego progu wykorzystania. Jeśli planujesz wysyłać wiadomości do określonych grup, filtrowanie po stronie klienta może okazać się droższe niż uzasadnione. Możesz obejść ten problem, tworząc kilka projektów, aby powielać poszczególne kanały (jeden projekt i jeden identyfikator nadawcy dla każdego kanału). Każda dana usługa może zarejestrować wiele identyfikatorów nadawcy, maksymalnie 100.

Jeśli potrzebujesz obsługi kanałów lub chcesz korzystać z powiadomień push bez przechodzenia przez Firebase, możesz też użyć interfejsu Push API.