En aquest tema, aprendrem com enviar notificacions utilitzant Firebase Cloud Messaging (FCM). Les notificacions són una eina poderosa per mantenir els usuaris compromesos amb la teva aplicació. FCM permet enviar missatges de notificació a dispositius Android, iOS i aplicacions web de manera fiable i escalable.
Objectius
- Entendre els conceptes bàsics de Firebase Cloud Messaging.
- Configurar FCM per enviar notificacions.
- Enviar notificacions des de la consola de Firebase.
- Enviar notificacions programàticament.
Conceptes bàsics de Firebase Cloud Messaging
Firebase Cloud Messaging (FCM) és una solució de missatgeria multiplataforma que permet enviar missatges de notificació i dades a aplicacions client. Els missatges poden ser enviats des de la consola de Firebase o des d'un servidor backend.
Tipus de missatges
- Missatges de notificació: Són missatges que es mostren a l'usuari com a notificacions del sistema.
- Missatges de dades: Són missatges que contenen dades personalitzades i no es mostren automàticament a l'usuari. L'aplicació client és responsable de gestionar-los.
Configuració de FCM
Pas 1: Afegir Firebase al teu projecte
Si encara no has afegit Firebase al teu projecte, segueix els passos del mòdul 1 per configurar Firebase.
Pas 2: Configurar FCM a la consola de Firebase
- A la consola de Firebase, selecciona el teu projecte.
- A la barra lateral, fes clic a "Cloud Messaging".
- Configura les opcions necessàries per a la teva aplicació.
Pas 3: Integrar FCM al teu projecte
Android
- Afegeix la dependència de FCM al teu
build.gradle
(nivell d'aplicació):implementation 'com.google.firebase:firebase-messaging:XX.X.X'
- Registra el teu servei de missatgeria al manifest:
<service android:name=".MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>
iOS
- Afegeix la dependència de FCM al teu
Podfile
:pod 'Firebase/Messaging'
- Configura les notificacions push a Xcode i registra el dispositiu per a notificacions.
Enviar notificacions des de la consola de Firebase
- A la consola de Firebase, selecciona el teu projecte.
- A la barra lateral, fes clic a "Cloud Messaging".
- Fes clic a "Enviar el teu primer missatge".
- Omple els camps necessaris:
- Títol: El títol de la notificació.
- Text: El cos de la notificació.
- Aplicació de destinació: Selecciona l'aplicació a la qual vols enviar la notificació.
- Fes clic a "Enviar".
Enviar notificacions programàticament
Exemple en Android
MyFirebaseMessagingService.java
public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { // Gestionar el missatge de notificació if (remoteMessage.getNotification() != null) { showNotification(remoteMessage.getNotification().getTitle(), remoteMessage.getNotification().getBody()); } } private void showNotification(String title, String body) { NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "MyChannelId") .setSmallIcon(R.drawable.ic_notification) .setContentTitle(title) .setContentText(body) .setPriority(NotificationCompat.PRIORITY_DEFAULT); NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(0, builder.build()); } }
Exemple en iOS
AppDelegate.swift
import Firebase import UserNotifications @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate, MessagingDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() UNUserNotificationCenter.current().delegate = self Messaging.messaging().delegate = self return true } func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) { // Gestionar el missatge de notificació print("Message data: \(remoteMessage.appData)") } func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { completionHandler([.alert, .sound]) } }
Exercici pràctic
Objectiu
Enviar una notificació des de la consola de Firebase i rebre-la a l'aplicació client.
Passos
- Configura FCM al teu projecte seguint els passos anteriors.
- Envia una notificació des de la consola de Firebase.
- Verifica que la notificació es rep correctament a l'aplicació client.
Solució
- Configura FCM al teu projecte.
- Envia una notificació des de la consola de Firebase amb el títol "Hola" i el text "Aquesta és una notificació de prova".
- Verifica que la notificació es mostra correctament a l'aplicació client.
Errors comuns i consells
-
Error: No es reben notificacions a l'aplicació client.
- Solució: Verifica que has configurat correctament FCM al teu projecte i que el dispositiu està registrat per a notificacions.
-
Error: Les notificacions no es mostren quan l'aplicació està en primer pla.
- Solució: Assegura't de gestionar les notificacions manualment quan l'aplicació està en primer pla.
Conclusió
En aquest tema, hem après com enviar notificacions utilitzant Firebase Cloud Messaging. Hem vist com configurar FCM, enviar notificacions des de la consola de Firebase i programàticament, i hem realitzat un exercici pràctic per reforçar els conceptes apresos. Ara estàs preparat per mantenir els teus usuaris compromesos amb notificacions efectives.
Curs de Firebase
Mòdul 1: Introducció a Firebase
Mòdul 2: Autenticació de Firebase
- Introducció a l'autenticació de Firebase
- Autenticació amb correu electrònic i contrasenya
- Autenticació amb xarxes socials
- Gestió d'usuaris
Mòdul 3: Base de dades en temps real de Firebase
- Introducció a la base de dades en temps real
- Lectura i escriptura de dades
- Estructura de dades i regles de seguretat
- Capacitats fora de línia
Mòdul 4: Cloud Firestore
- Introducció a Cloud Firestore
- Model de dades de Firestore
- Operacions CRUD
- Consultes avançades
- Regles de seguretat
Mòdul 5: Emmagatzematge de Firebase
- Introducció a l'emmagatzematge de Firebase
- Carregar fitxers
- Descarregar fitxers
- Metadades de fitxers i seguretat
Mòdul 6: Missatgeria en el núvol de Firebase
- Introducció a la missatgeria en el núvol
- Enviar notificacions
- Gestionar notificacions
- Funcions avançades de missatgeria
Mòdul 7: Analítica de Firebase
Mòdul 8: Funcions de Firebase
Mòdul 9: Monitoratge del rendiment de Firebase
- Introducció al monitoratge del rendiment
- Configuració del monitoratge del rendiment
- Analitzar dades de rendiment