Ir a la consola

Envía un mensaje de prueba a una app en segundo plano

Para comenzar a usar FCM, compila el caso práctico más sencillo: enviar un mensaje de notificación desde el Compositor de Notifications a un dispositivo de desarrollo cuando la app se encuentra en segundo plano. En esta página, se indican todos los pasos necesarios para lograrlo, desde la configuración hasta la verificación. Es posible que ya hayas realizado algunos de los pasos si configuraste una app cliente en Android para FCM anteriormente.

Configura el SDK

Es posible que hayas completado tareas que aparecen en esta sección si ya habilitaste otras funciones de Firebase para tu app.

Antes de comenzar

  • Instala Android Studio o actualízalo a su versión más reciente.

  • Asegúrate de que tu app para Android satisfaga estas condiciones:

    • Se orienta al nivel de API 16 (Jelly Bean) o superior.
    • Usa Gradle 4.1 o una versión más reciente.
  • Configura un dispositivo o emulador para ejecutar la app.

    • Los emuladores deben usar una imagen de emulador con Google Play.
  • Accede a Firebase con tu Cuenta de Google.

Si aún no tienes un proyecto de app para Android, puedes descargar uno de nuestros ejemplos de inicio rápido si solo quieres probar un producto de Firebase.

Crea un proyecto de Firebase

A fin de poder agregar Firebase a tu app para Android, debes crear un proyecto de Firebase y conectarlo a la app. Consulta la Información sobre los proyectos de Firebase para obtener detalles acerca del tema.

Registra tu app en Firebase

Cuando tengas un proyecto de Firebase, podrás agregarle tu app para Android.

Revisa la Información sobre los proyectos de Firebase a fin de obtener detalles sobre las recomendaciones y consideraciones para agregar apps a un proyecto de Firebase, incluido cómo manejar diversas variantes de compilación.

  1. En el centro de la página de descripción general del proyecto en Firebase console, haz clic en el ícono de Android para iniciar el flujo de trabajo de la configuración.

    Si ya agregaste una app a tu proyecto de Firebase, haz clic en Agregar app para que se muestren las opciones de plataforma.

  2. Ingresa el ID de aplicación de tu app en el campo Nombre del paquete de Android.

    • A veces, nos referimos al ID de aplicación como un nombre de paquete.

    • Encuentra este ID de aplicación en el archivo Gradle, generalmente app/build.gradle (ejemplo de ID: com.yourcompany.yourproject) de tu módulo (de nivel de la app).

  3. (Opcional) Ingresa otra información de la app si el flujo de trabajo de configuración lo solicita.

    El sobrenombre es un identificador interno y conveniente, y solo tú puedes verlo en Firebase console.

  4. Haz clic en Registrar app.

Agrega un archivo de configuración de Firebase

  1. Agrega el archivo de configuración de Firebase para Android a la app, como se indica a continuación:

    1. Haz clic en Descargar google-services.json a fin de obtener el archivo de configuración de Firebase para Android (google-services.json).

    2. Transfiere tu archivo de configuración al directorio del módulo (nivel de app) de tu app.

  2. Agrega el complemento de google-services a tus archivos Gradle a fin de habilitar los productos de Firebase en tu app.

    1. Agrega reglas para incluir el complemento de Google Services al archivo Gradle (build.gradle) de nivel de raíz (nivel de proyecto). Además, revisa que tengas el repositorio Maven de Google.

      buildscript {
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // Add the following line:
          classpath 'com.google.gms:google-services:4.3.0'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. En el archivo Gradle (generalmente app/build.gradle) de tu módulo (nivel de app), agrega una línea a la parte inferior del archivo.

      apply plugin: 'com.android.application'
      
      android {
        // ...
      }
      
      // Add the following line to the bottom of the file:
      apply plugin: 'com.google.gms.google-services'  // Google Play services Gradle plugin
      

Agrega los SDK de Firebase a tu app

Puedes agregar cualquiera de los productos de Firebase admitidos a tu app para Android. Te recomendamos comenzar con el SDK principal de Firebase (com.google.firebase:firebase-core), que ofrece funciones de Google Analytics para Firebase.

  1. En el archivo Gradle (generalmente app/build.gradle) de tu módulo (nivel de app), agrega la dependencia para el SDK principal de Firebase, como se muestra a continuación:

    dependencies {
     // ...
     implementation 'com.google.firebase:firebase-core:17.0.1'
    
     // Getting a "Could not find" error? Make sure that you've added
     // Google's Maven repository to your root-level build.gradle file
    }
    
  2. Agrega las dependencias para las otras bibliotecas de Firebase que quieres usar (opcional).

    Algunos SDK de Firebase para Android ofrecen una biblioteca de extensiones de Kotlin alternativa.

  3. Sincroniza tu app para garantizar que todas las dependencias tengan las versiones necesarias.

  4. Ejecuta la app para enviar la verificación a Firebase de que lo integraste correctamente.

    En los registros de tu dispositivo, se mostrará la verificación de Firebase que indica que se completó la inicialización. Si ejecutas tu app en un emulador que tiene acceso a redes, Firebase console notificará que se completó la conexión de tu app.

Accede al token de registro

Para enviar mensajes a un dispositivo específico, es necesario conocer el token de registro del dispositivo. Dado que tienes que ingresar el token en un campo de la consola de notificaciones para completar este instructivo, asegúrate de copiar el token o de almacenarlo en forma segura después de recuperarlo.

Cuando se inicia tu app por primera vez, el SDK de FCM genera un token de registro para la instancia de la app cliente. Si tu objetivo son los dispositivos individuales o la creación de grupos de dispositivos, tendrás que extender FirebaseMessagingService y anular onNewToken para acceder a este token.

En esta sección, se describe cómo recuperar el token y supervisar los cambios que lo afectan. Debido a que el token se puede rotar después del primer inicio, te recomendamos enfáticamente que recuperes el token de registro con la actualización más reciente.

El token de registro puede cambiar en las siguientes situaciones:

  • La app borra un ID de instancia.
  • La app se restablece en un dispositivo nuevo.
  • El usuario desinstala y vuelve a instalar la app.
  • El usuario borra los datos de la app.

Recupera el token de registro actual

Cuando necesites recuperar el token actual, llama a FirebaseInstanceId.getInstance().getInstanceId():

Java

FirebaseInstanceId.getInstance().getInstanceId()
        .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                if (!task.isSuccessful()) {
                    Log.w(TAG, "getInstanceId failed", task.getException());
                    return;
                }

                // Get new Instance ID token
                String token = task.getResult().getToken();

                // 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

FirebaseInstanceId.getInstance().instanceId
        .addOnCompleteListener(OnCompleteListener { task ->
            if (!task.isSuccessful) {
                Log.w(TAG, "getInstanceId failed", task.exception)
                return@OnCompleteListener
            }

            // Get new Instance ID token
            val token = task.result?.token

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

Supervisa la generación de tokens

La devolución de llamada de onNewToken se activa cuando se genera un token nuevo.

Java

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID token
 * is initially generated so this is where you would retrieve the token.
 */
@Override
public void onNewToken(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
    // Instance ID token to your app server.
    sendRegistrationToServer(token);
}

Kotlin

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID 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
    // Instance ID token to your app server.
    sendRegistrationToServer(token)
}

Después de obtener el token, puedes enviarlo a tu servidor de apps y almacenarlo con tu método preferido. Consulta la referencia de API de Instance ID para obtener todos los detalles acerca de la API.

Envía un mensaje de notificación de prueba

  1. Instala y ejecuta la app en el dispositivo de destino.

  2. Asegúrate de que la app se encuentre en segundo plano en el dispositivo.

  3. Abre el Compositor de Notifications y selecciona Mensaje nuevo.

  4. Ingresa el texto del mensaje.

  5. Selecciona Probar en el dispositivo.

  6. En el campo Agregar un token de registro de FCM, ingresa el token de registro que obtuviste en una sección anterior de esta guía.

  7. Haz clic en Probar.

Cuando hagas clic en Probar, el cliente objetivo (que tiene la app en segundo plano) debería recibir la notificación en la bandeja de notificaciones del sistema.

Para obtener estadísticas de la entrega de mensajes a tu app, consulta el panel de mensajes de FCM que registra la cantidad de mensajes enviados y abiertos en dispositivos iOS y Android, junto con datos de “impresiones” (notificaciones vistas por los usuarios) para apps de Android.

Pasos siguientes

Envía mensajes a apps en primer plano

Una vez que envíes mensajes de notificación de manera correcta mientras la app está en segundo plano, consulta Recibir mensajes en una app de Android para comenzar a enviar mensajes a apps en primer plano.

Más allá de las notificaciones

Para dejar atrás las notificaciones y agregar otros comportamientos más avanzados a la app, consulta: