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.

87c7c7550bde.png

Requisitos previos

Ninguna

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 ( carpeta_android_studio.png). Es el que se clonó en el paso anterior (File > Open > .../codelab-fcm-and-fiam).

Ahora deberías tener abierto el proyecto FcmAndFiam 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. Desde la pantalla de información general del 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 Register App and Download google-services.json para obtener el archivo de configuración de Firebase para Android y, 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 de Servicios de Google a tu app

El complemento google-services usa el archivo google-services.json para configurar tu aplicación y usar Firebase. La dependencia del complemento google-services y el complemento en sí ya deberían estar agregados a los archivos de compilación de nivel de app y del proyecto, 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 de nivel de 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'
}

Sincroniza tu proyecto con archivos de Gradle

A fin de asegurarte de que todas las dependencias estén disponibles para tu app, debes sincronizar tu proyecto con archivos de Gradle en este momento. 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 comentario TODO por el siguiente código a fin de 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 Registros de identificadores, se registrarán 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 Send your first message.
  4. Agrega un título y un cuerpo al mensaje. Luego, haz clic en Enviar mensaje de prueba.

207ced65f5245ada.png

  1. Agrega el token de registro de FCM y, luego, haz clic en test (prueba).

f3556c6a8a6453fe.png

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

6. Enviar 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. Volver a abrir app
  2. Observar en el mensaje de 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

¿Qué sigue?

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

Documentos de referencia