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
En la consola de Firebase, seleccione el proyecto y vaya a Configuración del proyecto.
Seleccione la pestaña Cuentas de servicio, cree una cuenta de servicio y genere una clave privada desde la cuenta de servicio de Google.
Seleccione Generar nueva clave privada para generar un archivo JSON. Descargue y abra el archivo. Reemplace los valores de
project_id
,private_key
yclient_email
, ya que son necesarios para las actualizaciones de credenciales del centro de Azure Notification Hubs.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)
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.
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:
- La carga completa se ha movido a un objeto de mensaje.
- Las opciones específicas de Android se han cambiado al objeto Android y
time_to_live
es ahorattl
con un valor de cadena. - Ahora en el campo
data
solo se permite una asignación de cadena a cadena plana. - 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:
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.