Usa FCM y FIAM para enviar mensajes a los usuarios

1. Antes de comenzar

En este codelab, aprenderás a agregar la capacidad de interactuar con los usuarios, ya sea que usen tu app en primer plano o en segundo plano.

806c7ecece550bde.png

Requisitos previos

Ninguno

Qué aprenderás

  • Agrega Firebase a tu app para Android
  • Agrega dependencias de FCM y FIAM
  • Envía un mensaje de prueba de FCM a tu app
  • Envía un mensaje de FIAM de prueba a tu app

Requisitos

  • Android Studio 4.1
  • Emulador o dispositivo Android

2. Comenzar

Obtén el código de muestra

Clona el repositorio de GitHub a partir de la línea de comandos:

Importa la app de partida

En Android Studio, selecciona el directorio codelab-fcm-and-fiam ( android_studio_folder.png). Es el que se clonó en el paso anterior (File > Open > .../codelab-fcm-and-fiam).

Ahora deberías tener el proyecto FcmAndFiam abierto en Android Studio. Si ves una advertencia sobre la falta de un archivo google-services.json, no te preocupes. Se agregará en el siguiente paso.

3. Crea un proyecto de Firebase console

Agrega Firebase al proyecto

  1. Dirígete a Firebase console.
  2. Selecciona Agregar proyecto.
  3. Selecciona o ingresa un nombre para el proyecto.
  4. Sigue los pasos de configuración restantes en Firebase console y, luego, haz clic en Crear proyecto (o Agregar Firebase, si usas un proyecto de Google existente).
  5. En la pantalla de descripción general de tu proyecto nuevo, haz clic en el ícono de Android para iniciar el flujo de trabajo de configuración.
  6. Ingresa el nombre del paquete del codelab: com.google.firebase.codelab.fcmandfiam

Agrega el archivo google-services.json a tu app

Después de agregar el nombre del paquete, haz clic en Registrar app y, luego, Descargar google-services.json para obtener el archivo de configuración de Firebase para Android. Luego, copia el archivo google-services.json en el directorio app de tu proyecto. Una vez que se descargue el archivo, puedes hacer clic en Skip para continuar con los próximos pasos que se muestran en la consola (ya se realizaron automáticamente en el proyecto build-android-start).

Agrega el complemento google-services a tu app

El complemento google-services usa el archivo google-services.json para configurar tu aplicación para que use Firebase. La dependencia del complemento google-services y el complemento en sí ya deberían estar agregados a los archivos de compilación a nivel del proyecto y de la app, respectivamente. Confirma las siguientes entradas:

build.gradle

buildscript {
  ...
  dependencies {
    ...
    classpath 'com.google.gms:google-services:4.3.8'
  }
}

app/build.gradle

plugins {
  ...
  id: 'com.google.gms.google-services'
}

Agrega dependencias

FCM y FIAM requieren las siguientes dependencias. Estas dependencias ya deberían estar agregadas al archivo de compilación a nivel de la app. Confirma que se hayan agregado las siguientes dependencias:

app/build.gradle

dependencies {
  ...
  implementation platform('com.google.firebase:firebase-bom:28.4.2')
  implementation 'com.google.firebase:firebase-analytics'
  implementation 'com.google.firebase:firebase-messaging'
  implementation 'com.google.firebase:firebase-inappmessaging-display'
}

Cómo sincronizar tu proyecto con archivos de Gradle

Para asegurarte de que todas las dependencias estén disponibles para tu app, debes sincronizar tu proyecto con archivos de Gradle en este punto. Selecciona File > Sync Project with Gradle Files en la barra de herramientas de Android Studio.

4. Identificadores de registros

Firebase Cloud Messaging y Firebase In App Messaging usan identificadores para enviar mensajes a las apps. FCM usa un token de registro, y FIAM usa un ID de instalación.

  1. En MainActivity.kt, reemplaza el TODO por el siguiente código para registrar los identificadores necesarios para enviar mensajes:
FirebaseMessaging.getInstance().token.addOnCompleteListener { regTokenTask ->
   if (regTokenTask.isSuccessful) {
       Log.d(TAG, "FCM registration token: ${regTokenTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve registration token",
           regTokenTask.exception)
   }
}
FirebaseInstallations.getInstance().id.addOnCompleteListener { installationIdTask ->
   if (installationIdTask.isSuccessful) {
       Log.d(TAG, "Firebase Installations ID: ${installationIdTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve installations ID",
           installationIdTask.exception)
   }
}
  1. Conecta tu dispositivo Android y haz clic en Run ( ejecutar.png) en la barra de herramientas de Android Studio. Si presionas el botón Log Identifiers (Identificadores de registro), se registrará el token de registro de FCM y el ID de instalaciones de Firebase en logcat. El resultado debería verse así:
D/FcmAndFiam: Firebase Installations ID: emMc5...AsJfb
  FCM registration token: emMc5LART6GV7...r0Q

5. Enviar mensaje de prueba de FCM

Los mensajes de FCM se pueden enviar desde Firebase console y desde la API de REST de FCM. En este codelab, redactaremos un mensaje de notificación de FCM y lo enviaremos a nuestro dispositivo. Los mensajes de notificación son aquellos que se muestran en el área de notificaciones del sistema. Envía un mensaje de prueba de FCM de la siguiente manera:

  1. Asegúrate de que la app esté en segundo plano (ve a la pantalla principal)
  2. Ve a Firebase console y selecciona Cloud Messaging en el panel de navegación de la izquierda.
  3. Selecciona Envía tu primer mensaje.
  4. Agrega un título y un cuerpo para el mensaje y, luego, haz clic en Enviar mensaje de prueba.

207ced65f5245ada.png

  1. Agrega el token de registro de FCM y, luego, haz clic en probar.

f3556c6a8a6453fe.png

  1. Observa la notificación en el dispositivo
  2. Si presionas la notificación, se abrirá la app.

6. Envía un mensaje de prueba de FIAM

Firebase In App Messaging puede activarse como resultado de una variedad de eventos de usuario. El mensaje de prueba usa el evento de apertura de aplicación para activar el mensaje desde la app. Envía un mensaje de FIAM de prueba de la siguiente manera:

  1. Asegúrate de que la app esté en segundo plano (ve a la pantalla principal)
  2. Ve a Firebase console y selecciona In-App Messaging en el panel de navegación izquierdo.
  3. Seleccione Crear su primera campaña.
  4. Selecciona la campaña de banner superior y, luego, ingresa el título y el cuerpo del mensaje
  5. Haz clic en Probar en el dispositivo.

69f6ea5efff240d1.png

  1. Agrega el ID de instalaciones y haz clic en Probar.

24b101edfab47144.png

  1. Cómo volver a abrir la app
  2. Observa el mensaje en la app

7. Felicitaciones

Felicitaciones, enviaste correctamente mensajes a FCM y FIAM. Ahora sabes cómo interactuar con tus usuarios, ya sea que usen tu app en primer plano o en segundo plano.

Lecturas adicionales

Próximos pasos

  • Envía mensajes a los usuarios en tu propia app para Android.

Documentos de referencia