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

  1. Missatges de notificació: Són missatges que es mostren a l'usuari com a notificacions del sistema.
  2. 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

  1. A la consola de Firebase, selecciona el teu projecte.
  2. A la barra lateral, fes clic a "Cloud Messaging".
  3. Configura les opcions necessàries per a la teva aplicació.

Pas 3: Integrar FCM al teu projecte

Android

  1. Afegeix la dependència de FCM al teu build.gradle (nivell d'aplicació):
    implementation 'com.google.firebase:firebase-messaging:XX.X.X'
    
  2. 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

  1. Afegeix la dependència de FCM al teu Podfile:
    pod 'Firebase/Messaging'
    
  2. Configura les notificacions push a Xcode i registra el dispositiu per a notificacions.

Enviar notificacions des de la consola de Firebase

  1. A la consola de Firebase, selecciona el teu projecte.
  2. A la barra lateral, fes clic a "Cloud Messaging".
  3. Fes clic a "Enviar el teu primer missatge".
  4. 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ó.
  5. 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

  1. Configura FCM al teu projecte seguint els passos anteriors.
  2. Envia una notificació des de la consola de Firebase.
  3. Verifica que la notificació es rep correctament a l'aplicació client.

Solució

  1. Configura FCM al teu projecte.
  2. Envia una notificació des de la consola de Firebase amb el títol "Hola" i el text "Aquesta és una notificació de prova".
  3. 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

Mòdul 3: Base de dades en temps real de Firebase

Mòdul 4: Cloud Firestore

Mòdul 5: Emmagatzematge de Firebase

Mòdul 6: Missatgeria en el núvol de Firebase

Mòdul 7: Analítica de Firebase

Mòdul 8: Funcions de Firebase

Mòdul 9: Monitoratge del rendiment de Firebase

Mòdul 10: Laboratori de proves de Firebase

Mòdul 11: Temes avançats de Firebase

© Copyright 2024. Tots els drets reservats