Compartir vía


Migración de Google Firebase Cloud Messaging mediante la API REST y Azure Portal

En este artículo se describen las funcionalidades principales para la integración de Azur  Notification Hubs con Firebase Cloud Messaging (FCM) v1. Como recordatorio, Google dejará de admitir HTTP heredado de FCM el 20 de junio de 2024, por lo que debe migrar las aplicaciones y las cargas de notificación al nuevo formato antes de entonces. Todos los métodos de incorporación estarán listos para la migración el 1 de marzo de 2024.

Importante

A partir de junio de 2024, las API heredadas de FCM ya no se admitirán y se retirarán. Para evitar cualquier interrupción en el servicio de notificaciones de inserción, debe migrar al protocolo FCM v1 lo antes posible.

Conceptos de FCM v1

  • Se admite un nuevo tipo de plataforma, denominado FCM v1.
  • Para FCM v1 se usan nuevas API, credenciales, registros e instalaciones.

Nota:

La plataforma FCM existente se conoce como heredado de FCM en este artículo.

Pasos de migración

La API heredada Firebase Cloud Messaging (FCM) quedará en desuso en julio de 2024. Puede empezar a migrar desde el protocolo HTTP heredado a FCM v1 el 1 de marzo de 2024. Debe completar la migración en junio de 2024. En esta sección se describen los pasos para migrar de FCM heredado a FCM v1 mediante la API REST de Notification Hubs.

REST API

En la sección siguiente se describe cómo realizar la migración mediante la API REST.

Paso 1: Adición de credenciales de FCM v1 al centro

El primer paso consiste en agregar credenciales mediante Azure Portal, una operación del centro de plano de administración o una operación del centro de plano de datos.

Creación de un archivo JSON de cuenta de servicio de Google

  1. En la consola de Firebase, seleccione el proyecto y vaya a Configuración del proyecto.

  2. Seleccione la pestaña Cuentas de servicio, cree una cuenta de servicio y genere una clave privada desde la cuenta de servicio de Google.

  3. Seleccione Generar nueva clave privada para generar un archivo JSON. Descargue y abra el archivo. Reemplace los valores de project_id, private_key y client_email, ya que son necesarios para las actualizaciones de credenciales del centro de Azure Notification Hubs.

    Captura de pantalla de la configuración del proyecto de consola de Firebase.

    O BIEN

    Si quiere crear una cuenta de servicio con permiso de acceso personalizado, puede hacerlo desde la página IAM y administración > Cuentas de servicio. Para ir directamente a la página, haga clic en Administrar permisos de cuenta de servicio. Puede crear una cuenta de servicio que tenga uno de los siguientes roles:

    • Administrador de Firebase (roles/firebase.admin)
    • Administrador de crecimiento de Firebase (roles/firebase.growthAdmin)
    • Agente de servicio de administrador del SDK de administración de Firebase (roles/firebase.sdkAdminServiceAgent)
    • Agente del servicio de aprovisionamiento del SDK de Firebase (roles/firebase.sdkProvisioningServiceAgent)

    Captura de pantalla que muestra la configuración de la cuenta de servicio de IAM.

Opción 1: Actualización de las credenciales de FcmV1 desde Azure Portal

Vaya al centro de notificaciones en Azure Portal y seleccione Configuración > Google (FCM v1). Obtenga los valores de Clave privada, Id. de proyectoy Correo electrónico del cliente del archivo JSON de la cuenta de servicio adquirido en la sección anterior y guárdelos para su uso posterior.

Captura de pantalla que muestra las opciones de credenciales de Firebase de Azure Portal.

Opción 2: Actualización de las credenciales de FcmV1 mediante la operación del centro de plano de administración

Vea la Descripción de una instancia de FcmV1Credential de NotificationHub.

  • Use la versión de API: 2023-10-01-preview

  • FcmV1CredentialProperties:

    Nombre Tipo
    clientEmail cadena
    privateKey string
    projectId string

Opción 3: Actualización de las credenciales de FcmV1 mediante la operación del centro de plano de datos

Vea Creación de un centro de notificaciones y Actualización de un centro de notificaciones.

  • Use la versión de API: 2015-01
  • Asegúrese de colocar FcmV1Credential después de GcmCredential, ya que el orden es importante.

Por ejemplo, a continuación se muestra el cuerpo de la solicitud:

<NotificationHubDescription xmlns:i='http://www.w3.org/2001/XMLSchema-instance' 
    xmlns='http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'> 
    <ApnsCredential> 
        <Properties> 
            <Property> 
                <Name>Endpoint</Name> 
                <Value>{_apnsCredential.Endpoint}</Value> 
            </Property> 
            <Property> 
                <Name>AppId</Name> 
                <Value>{_apnsCredential.AppId}</Value> 
            </Property> 
            <Property> 
                <Name>AppName</Name> 
                <Value>{_apnsCredential.AppName}</Value> 
            </Property> 
            <Property> 
                <Name>KeyId</Name> 
                <Value>{_apnsCredential.KeyId}</Value> 
            </Property> 
            <Property> 
                <Name>Token</Name> 
                <Value>{_apnsCredential.Token}</Value> 
            </Property> 
        </Properties> 
    </ApnsCredential> 
    <WnsCredential> 
        <Properties> 
            <Property> 
                <Name>PackageSid</Name> 
                <Value>{_wnsCredential.PackageSid}</Value> 
            </Property> 
            <Property> 
                <Name>SecretKey</Name> 
                <Value>{_wnsCredential.SecretKey}</Value> 
            </Property> 
        </Properties> 
    </WnsCredential> 
    <GcmCredential> 
        <Properties> 
            <Property> 
                <Name>GoogleApiKey</Name> 
                <Value>{_gcmCredential.GoogleApiKey}</Value> 
            </Property> 
        </Properties> 
    </GcmCredential> 
    <FcmV1Credential> 
        <Properties> 
            <Property> 
                <Name>ProjectId</Name> 
                <Value>{_fcmV1Credential.ProjectId}</Value> 
            </Property> 
            <Property> 
                <Name>PrivateKey</Name> 
                <Value>{_fcmV1Credential.PrivateKey}</Value> 
            </Property> 
            <Property> 
                <Name>ClientEmail</Name> 
                <Value>{_fcmV1Credential.ClientEmail}</Value> 
            </Property> 
        </Properties> 
    </FcmV1Credential> 
</NotificationHubDescription>

Paso 2: Administración del registro y la instalación

Para escenarios de envío directo, continúe directamente con el paso 3. Si usa uno de los SDK de Azure, vea el artículo sobre SDK.

Opción 1: Creación del registro de FCM v1 o actualización del registro de GCM a FCM v1

Si tiene un registro de GCM existente, actualícelo a FcmV1Registration. Vea Creación o actualización de un registro. Si no tiene una instancia deGcmRegistration existente, cree un registro como FcmV1Registration. Vea Creación de un registro. El cuerpo de la solicitud de registro debe aparecer como en el ejemplo siguiente:

// FcmV1Registration 
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
    <content type="application/xml">
        <FcmV1RegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
            <Tags>myTag, myOtherTag</Tags>
            <FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
        </FcmV1RegistrationDescription>
    </content>
</entry> 

// FcmV1TemplateRegistration 
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
    <content type="application/xml">
        <FcmV1TemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
            <Tags>myTag, myOtherTag</Tags>
            <FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
            <BodyTemplate><![CDATA[ {BodyTemplate}]]></BodyTemplate>
        </FcmV1TemplateRegistrationDescription>
    </content>
</entry>

Opción 2: Creación de la instalación de FCM v1 o actualización de la instalación de GCM a FCM v1

Vea Creación o sobrescritura de una instalación y establezca platform en FCMV1.

Paso 3: Envío de una notificación de inserción

Opción 1: Depuración del envío

Use este procedimiento para probar las notificaciones anteriores a la opción 2, 3 o 4. Vea Notification Hubs: depuración del envío.

Nota:

Use la versión de API: 2023-10-01-preview.

En el encabezado:

Encabezado de solicitud Valor
Content-Type application/json;charset=utf-8
ServiceBusNotification-Format Establezca fcmV1 o template
Servicebusnotification-Tags {identificador de etiqueta única}

Pruebe una carga con la siguiente estructura mediante el envío de depuración. Tenga en cuenta que FcmV1 presenta un cambio significativo en la estructuración de la carga del mensaje JSON:

  1. La carga completa se ha movido a un objeto de mensaje.
  2. Las opciones específicas de Android se han cambiado al objeto Android y time_to_live es ahora ttl con un valor de cadena.
  3. Ahora en el campo data solo se permite una asignación de cadena a cadena plana.
  4. Para más información, vea la referencia de FCM.

Como alternativa, puede realizar un envío de prueba (envío de depuración) desde Azure Portal:

Captura de pantalla que muestra la página de envío de pruebas de Azure Portal.

Opción 2: Envío directo

Realice un envío directo. En el encabezado de solicitud, establezca ServiceBusNotification-Format en fcmV1.

Opción 3: Notificación nativa de FcmV1 (envío de audiencia)

Realice un envío de notificación nativa de FcmV1. Vea Envío de una notificación nativa de Google Cloud Messaging (GCM). En el encabezado de solicitud, establezca ServiceBusNotification-Format en fcmV1. Por ejemplo, en el cuerpo de la solicitud:

{ 
  "message": { 
    "notification": {  
        "title": "Breaking News",  
        "body": "FcmV1 is ready."  
        }, 
    "android": {  
        "data": {  
            "name": "wrench",  
            "mass": "1.3kg",  
            "count": "3"  
            }  
        } 
    } 
}

Opción 4: notificación de plantilla

Puede probar envíos de plantilla con un nuevo cuerpo de la solicitud que siga la nueva estructura de carga JSON. No es necesario realizar ningún otro cambio. Vea Envío de una notificación de plantilla.

Pasos siguientes

Migración de Firebase Cloud Messaging mediante SDK de Azure