Ako ste se ikada pitali zašto vas telefon stalno obavještava da vam je netko poslao poruku ili da u vašoj omiljenoj trgovini postoji sjajna ponuda, odgovor se obično krije u push obavijestima. Implementacija ovog sustava u početku se može činiti zastrašujućom, ali s Firebase Cloud Messaging (FCM) Proces postaje mnogo probavljiviji, što nam omogućuje povezivanje našeg poslužitelja s korisnikovim uređajem bez pretjeranih komplikacija.
U tom smislu, FCM nije samo alat za Android; to je svestrana platforma koja doseže iOS, web preglednici i Unity projektiU osnovi, djeluje kao most koji prenosi informacije iz oblaka na zaslon klijenta, bilo putem obavijesti koje sustav automatski prikazuje ili putem podatkovnih poruka kojima upravljamo putem koda kako bismo radili personaliziranije stvari.
Arhitektura i funkcioniranje FCM-a
Da bi sve ovo funkcioniralo, potrebna su nam dva temeljna dijela. S jedne strane, okruženje povjerenjaTo može biti prilagođeni poslužitelj ili Firebase Cloud Functions, odgovoran za izradu poruke i odlučivanje kome će se poslati. S druge strane, imamo klijentska aplikacija (Android, iOS ili Web) koji je odgovoran za primanje paketa i njegov prikaz krajnjem korisniku.
Postoji nekoliko načina za slanje ovih poruka. Možemo koristiti firebase konzola Za brze marketinške kampanje, Firebase Admin SDK pruža potpunu kontrolu na strani poslužitelja ili čak HTTP protokol za izravnije zahtjeve. Segmentacija je jaka strana jer možemo slati upozorenja pojedini uređaji, stvarajte određene grupe ili koristite teme kako bi se korisnici pretplatili na određeni sadržaj.
Postupna implementacija na Androidu
Ako se odlučite za izradu na Androidu, prvi korak je stvaranje projekta u Firebase konzoli i registracija aplikacije s točnim nazivom paketa. Ne zaboravite preuzeti datoteku. google-services.json i stavite ga u mapu aplikacije vašeg projekta, jer bez njega aplikacija neće znati s kojim Firebase projektom treba komunicirati.
Zatim, temelje treba postaviti u kod. Dodavanje ovisnosti je ključno. firebase-poruke u datoteci build.gradle i stvorite klasu koja nasljeđuje FirebaseMessagingService, slijedeći Koraci za razvoj Android aplikacijeU ovom razredu, metoda prilikomPrimljenePoruke Tu se događa čarolija: ovdje bilježimo poruku i odlučujemo kako prikazati obavijest.
- Kanali obavijesti: Za Android verzije O i novije, stvaranje NotificationChannela je obavezno; u suprotnom se obavijest jednostavno neće pojaviti.
- Registracijski token: Svaki uređaj ima jedinstveni token. Zabilježavanje ovog tokena pomoću ove metode je ključno. naNewTokenu i poslati ga na naš vlastiti poslužitelj kako bismo kasnije mogli identificirati korisnika.
- Konfiguracija manifesta: Moramo deklarirati uslugu u AndroidManifest.xml s odgovarajućim intent-filterom com.google.firebase.DOGAĐAJ_PORUKE.
Implementacija u web okruženjima
Postavljanje push obavijesti na web stranici je malo nezgodno. Prvo, stranica mora raditi na [odgovarajućoj platformi/platformi]. HTTPS protokolOsim toga, potrebna nam je datoteka pod nazivom manifest.json u korijenu domene koji uključuje gcm_sender_id kako bi preglednik prepoznao uslugu.
Ključni dio ovdje je usluga radnikaJavaScript datoteka (obično nazvana firebase-messaging-sw.js) radi u pozadini. Ova datoteka je odgovorna za primanje obavijesti čak i ako je korisnik zatvorio karticu. Da bi ovo funkcioniralo, prvo moramo izvršiti kôd za zahtjevDozvola() kako bi nam korisnik mogao dati svoje odobrenje i dostaviti nam svoj registracijski token.
Upravljanje poslužiteljem i pozadinskim sustavom
Nakon što spremimo token uređaja u našu bazu podataka (na primjer, pomoću Laravel ili PHP), možemo pokrenuti obavijesti. Ako koristimo REST API, moramo poslati POST zahtjev Googleovim krajnjim točkama s ključ poslužitelja u zaglavlju autorizacije.
Ako koristimo PHP, možemo koristiti cURL za slanje JSON sadržaja koji sadrži naslov, tijelo poruke i token primatelja. Za robusniju integraciju postoje alati za izradu android aplikacija i pozadinske usluge koje pojednostavljuju ovaj proces, omogućujući nam slati masovne poruke svim korisnicima koji imaju valjani token registriran u bazi podataka jednim pozivom.
Napredne alternative: Azure Notification Hubs
Ponekad, za vrlo velike poslovne projekte, odabrana opcija je Azure čvorišta za obavijestiOva usluga djeluje kao agregator, olakšavajući istovremenu isporuku na više platformi. U ovom toku, Azure upravlja registracijom FCM tokena i koordinira isporuku, što od nas zahtijeva da konfiguriramo Ključ Firebase poslužitelja unutar Azure portala kako bi se oba sustava savršeno razumjela.
Da bi ovo radilo na Androidu, Usluga namjere registracije ...što automatski prenosi FCM token u Azure Hub. To je dodatni sloj upravljanja koji je vrlo koristan pri rukovanju ogromnim količinama korisnika i želji za centralizacijom poruka u Microsoftovom oblaku.
Savladavanje ekosustava Firebase Cloud Messaging uključuje koordinaciju konfiguracije konzole, implementacije usluga na strani klijenta i upravljanja tokenima na strani poslužitelja. Bilo da se radi o postavljanju Service Workera za web, definiranju kanala obavijesti u Androidu ili integraciji backenda s PHP-om ili Azureom, ključ leži u osiguravanju da tijek autentifikacije i registracije Tok tokena je fluidan kako bi se osiguralo da informacija uvijek stigne do svog odredišta.