Entérate de todos los anuncios de Firebase Summit y descubre cómo Firebase puede ayudarte a acelerar el desarrollo de las apps y a ejecutarlas con confianza. Más información

Enviar un mensaje de prueba a una aplicación en segundo plano

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Para comenzar con FCM, cree el caso de uso más simple: envíe un mensaje de notificación de prueba desde el redactor de notificaciones a un dispositivo de desarrollo cuando la aplicación está en segundo plano en el dispositivo. Esta página enumera todos los pasos para lograr esto, desde la configuración hasta la verificación; puede cubrir los pasos que ya completó si configuró una aplicación de cliente de Android para FCM.

Configurar el SDK

Esta sección cubre las tareas que puede haber completado si ya habilitó otras funciones de Firebase para su aplicación.

Antes de que empieces

  • Instale o actualice Android Studio a su última versión.

  • Asegúrate de que tu proyecto cumpla con estos requisitos:

    • Objetivos API nivel 19 (KitKat) o superior
    • Utiliza Android 4.4 o superior
    • Utiliza Jetpack (AndroidX) , que incluye el cumplimiento de estos requisitos de versión:
      • com.android.tools.build:gradle v3.2.1 o posterior
      • compileSdkVersion 28 o posterior
  • Configure un dispositivo físico o use un emulador para ejecutar su aplicación.
    Tenga en cuenta que los SDK de Firebase que dependen de los servicios de Google Play requieren que el dispositivo o el emulador tengan instalados los servicios de Google Play.

  • Inicie sesión en Firebase con su cuenta de Google.

Si aún no tiene un proyecto de Android y solo desea probar un producto de Firebase, puede descargar uno de nuestros ejemplos de inicio rápido .

Crear un proyecto de Firebase

Antes de poder agregar Firebase a su aplicación de Android, debe crear un proyecto de Firebase para conectarse a su aplicación de Android. Visite Comprender los proyectos de Firebase para obtener más información sobre los proyectos de Firebase.

Registra tu aplicación con Firebase

Para usar Firebase en su aplicación de Android, debe registrar su aplicación con su proyecto de Firebase. Registrar su aplicación a menudo se denomina "agregar" su aplicación a su proyecto.

  1. Ve a la consola de Firebase .

  2. En el centro de la página de descripción general del proyecto, haga clic en el ícono de Android ( ) o Agregar aplicación para iniciar el flujo de trabajo de configuración.

  3. Ingrese el nombre del paquete de su aplicación en el campo de nombre del paquete de Android .

  4. (Opcional) Ingrese otra información de la aplicación: apodo de la aplicación y certificado de firma de depuración SHA-1 .

  5. Haga clic en Registrar aplicación .

Agregar un archivo de configuración de Firebase

  1. Descargue y luego agregue el archivo de configuración de Firebase Android ( google-services.json ) a su aplicación:

    1. Haga clic en Descargar google-services.json para obtener su archivo de configuración de Firebase Android.

    2. Mueva su archivo de configuración al directorio raíz del módulo (nivel de aplicación) de su aplicación.

  2. Para que los valores en su archivo de configuración google-services.json sean accesibles para los SDK de Firebase, necesita el complemento Gradle de servicios de Google ( google-services ).

    1. En su archivo Gradle de nivel raíz (nivel de proyecto) ( <project>/build.gradle ), agregue el complemento de servicios de Google como una dependencia de buildscript:

      buildscript {
      
          repositories {
            // Make sure that you have the following two repositories
            google()  // Google's Maven repository
            mavenCentral()  // Maven Central repository
          }
      
          dependencies {
            ...
      
            // Add the dependency for the Google services Gradle plugin
            classpath 'com.google.gms:google-services:4.3.14'
          }
      }
      
      allprojects {
        ...
      
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
      }
      
    2. En el archivo Gradle de tu módulo (nivel de aplicación) (generalmente <project>/<app-module>/build.gradle ), agrega el complemento de servicios de Google:

      plugins {
          id 'com.android.application'
      
          // Add the Google services Gradle plugin
          id 'com.google.gms.google-services'
          ...
      }
      

Agregue los SDK de Firebase a su aplicación

  1. En el archivo Gradle de tu módulo (nivel de aplicación) (generalmente <project>/<app-module>/build.gradle ), agrega la dependencia para la biblioteca de Android Firebase Cloud Messaging. Recomendamos usar Firebase Android BoM para controlar el control de versiones de la biblioteca.

    Para una experiencia óptima con Firebase Cloud Messaging, recomendamos habilitar Google Analytics en su proyecto de Firebase y agregar Firebase SDK para Google Analytics a su aplicación.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.1.0')
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging'
        implementation 'com.google.firebase:firebase-analytics'
    }
    

    Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.

    (Alternativa) Agregar dependencias de la biblioteca de Firebase sin usar el BoM

    Si elige no usar Firebase BoM, debe especificar cada versión de la biblioteca de Firebase en su línea de dependencia.

    Tenga en cuenta que si usa varias bibliotecas de Firebase en su aplicación, le recomendamos enfáticamente que use la lista de materiales para administrar las versiones de la biblioteca, lo que garantiza que todas las versiones sean compatibles.

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging:23.1.0'
        implementation 'com.google.firebase:firebase-analytics:21.2.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.1.0')
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.

    (Alternativa) Agregar dependencias de la biblioteca de Firebase sin usar el BoM

    Si elige no usar Firebase BoM, debe especificar cada versión de la biblioteca de Firebase en su línea de dependencia.

    Tenga en cuenta que si usa varias bibliotecas de Firebase en su aplicación, le recomendamos enfáticamente que use la lista de materiales para administrar las versiones de la biblioteca, lo que garantiza que todas las versiones sean compatibles.

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging-ktx:23.1.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0'
    }
    

  2. Sincroniza tu proyecto Android con archivos Gradle.

Acceder al token de registro

Para enviar un mensaje a un dispositivo específico, debe conocer el token de registro de ese dispositivo. Debido a que deberá ingresar el token en un campo en la consola de notificaciones para completar este tutorial, asegúrese de copiar el token o almacenarlo de forma segura después de recuperarlo.

En el inicio inicial de su aplicación, el SDK de FCM genera un token de registro para la instancia de la aplicación cliente. Si desea apuntar a dispositivos individuales o crear grupos de dispositivos, deberá acceder a este token extendiendo FirebaseMessagingService y anulando onNewToken .

Esta sección describe cómo recuperar el token y cómo monitorear los cambios en el token. Debido a que el token se puede rotar después del inicio inicial, se recomienda enfáticamente recuperar el último token de registro actualizado.

El token de registro puede cambiar cuando:

  • La aplicación se restaura en un nuevo dispositivo
  • El usuario desinstala/reinstala la aplicación
  • El usuario borra los datos de la aplicación.

Recuperar el token de registro actual

Cuando necesite recuperar el token actual, llame a FirebaseMessaging.getInstance().getToken() :

Java

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // Log and toast
          String msg = getString(R.string.msg_token_fmt, token);
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });

Kotlin+KTX

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt, token)
    Log.d(TAG, msg)
    Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
})

Supervisar la generación de tokens

La devolución de llamada onNewToken cada vez que se genera un nuevo token.

Java

/**
 * There are two scenarios when onNewToken is called:
 * 1) When a new token is generated on initial app startup
 * 2) Whenever an existing token is changed
 * Under #2, there are three scenarios when the existing token is changed:
 * A) App is restored to a new device
 * B) User uninstalls/reinstalls the app
 * C) User clears app data
 */
@Override
public void onNewToken(@NonNull String token) {
    Log.d(TAG, "Refreshed token: " + token);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token);
}

Kotlin+KTX

/**
 * Called if the FCM registration token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the
 * FCM registration token is initially generated so this is where you would retrieve the token.
 */
override fun onNewToken(token: String) {
    Log.d(TAG, "Refreshed token: $token")

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token)
}

Una vez que haya obtenido el token, puede enviarlo a su servidor de aplicaciones y almacenarlo usando su método preferido.

Enviar un mensaje de notificación de prueba

  1. Instale y ejecute la aplicación en el dispositivo de destino. En los dispositivos Apple, deberá aceptar la solicitud de permiso para recibir notificaciones remotas.

  2. Asegúrese de que la aplicación esté en segundo plano en el dispositivo.

  3. En Firebase console, abra la página Mensajería .

  4. Si este es su primer mensaje, seleccione Crear su primera campaña .

    1. Seleccione Mensajes de notificación de Firebase y seleccione Crear .
  5. De lo contrario, en la pestaña Campañas , seleccione Nueva campaña y luego Notificaciones .

  6. Introduzca el texto del mensaje. Todos los demás campos son opcionales.

  7. Seleccione Enviar mensaje de prueba en el panel derecho.

  8. En el campo etiquetado Agregar un token de registro de FCM , ingrese el token de registro que obtuvo en una sección anterior de esta guía.

  9. Seleccione Prueba .

Después de seleccionar Probar , el dispositivo cliente de destino (con la aplicación en segundo plano) debería recibir la notificación.

Para obtener información sobre la entrega de mensajes a su aplicación, consulte el panel de informes de FCM , que registra la cantidad de mensajes enviados y abiertos en dispositivos Apple y Android, junto con datos de "impresiones" (notificaciones vistas por los usuarios) para aplicaciones de Android.

Próximos pasos

Enviar mensajes a aplicaciones en primer plano

Una vez que haya enviado correctamente los mensajes de notificación mientras su aplicación está en segundo plano, consulte Recibir mensajes en una aplicación de Android para comenzar a enviarlos a las aplicaciones en primer plano.

Vaya más allá de los mensajes de notificación

Para ir más allá de los mensajes de notificación y agregar otro comportamiento más avanzado a su aplicación, consulte: