Migração do Google Firebase Cloud Messaging usando a API REST e o portal do Azure
Este artigo descreve os principais recursos para a integração dos Hubs de Notificação do Azure com o Firebase Cloud Messaging (FCM) v1. Como lembrete, o Google deixará de oferecer suporte a HTTP herdado do FCM em 20 de junho de 2024, portanto, você deve migrar seus aplicativos e cargas úteis de notificação para o novo formato antes disso. Todos os métodos de integração estarão prontos para migração até 1º de março de 2024.
Importante
A partir de junho de 2024, as APIs herdadas do FCM não serão mais suportadas e serão desativadas. Para evitar qualquer interrupção no serviço de notificação por push, você deve migrar para o protocolo FCM v1 o mais rápido possível.
Conceitos para FCM v1
- Um novo tipo de plataforma é suportado, chamado FCM v1.
- Novas APIs, credenciais, registros e instalações são usados para o FCM v1.
Nota
A plataforma FCM existente é referida como legado FCM neste artigo.
Passos da Migração
A API herdada do Firebase Cloud Messaging (FCM) será preterida até julho de 2024. Você pode começar a migrar do protocolo HTTP herdado para o FCM v1 em 1º de março de 2024. Você deve concluir a migração até junho de 2024. Esta seção descreve as etapas para migrar do FCM herdado para o FCM v1 usando a API REST dos Hubs de Notificação.
API REST
A seção a seguir descreve como executar a migração usando a API REST.
Etapa 1: Adicionar credenciais do FCM v1 ao hub
A primeira etapa é adicionar credenciais por meio do portal do Azure, uma operação de hub de plano de gerenciamento ou operação de hub de plano de dados.
Criar arquivo JSON da conta de serviço do Google
No console do Firebase, selecione seu projeto e vá para Configurações do projeto.
Selecione a guia Contas de serviço, crie uma conta de serviço e gere uma chave privada a partir da sua conta de serviço do Google.
Selecione Gerar nova chave privada para gerar um arquivo JSON. Transfira e abra o ficheiro. Substitua os valores de
project_id
,private_key
eclient_email
, conforme eles são necessários para atualizações de credenciais de hub dos Hubs de Notificação do Azure.OU
Se quiser criar uma conta de serviço com permissão de acesso personalizada, você pode criar uma conta de serviço por meio da página IAM & Admin > Service Accounts. Vá diretamente para a página clicando em Gerenciar permissões de conta de serviço. Você pode criar uma conta de serviço que tenha uma das seguintes funções:
- Administrador do Firebase (funções/firebase.admin)
- Firebase Grow Admin (funções/firebase.growthAdmin)
- Agente de Serviço do Administrador do SDK do Firebase (funções/firebase.sdkAdminServiceAgent)
- Agente de Serviço de Provisionamento do SDK do Firebase (funções/firebase.sdkProvisioningServiceAgent)
Opção 1: Atualizar credenciais FcmV1 através do portal do Azure
Vá para o hub de notificação no portal do Azure e selecione Configurações > do Google (FCM v1). Obtenha os valores de Chave Privada, ID do Projeto e Email do Cliente do arquivo JSON da conta de serviço adquirido na seção anterior e salve-os para uso posterior.
Opção 2: Atualizar credenciais FcmV1 por meio da operação do hub do plano de gerenciamento
Consulte a descrição de um NotificationHub FcmV1Credential.
Usar a versão da API: 2023-10-01-preview
FcmV1CredentialProperties:
Nome Tipo clientEmail
string privateKey
string projectId
string
Opção 3: Atualizar credenciais FcmV1 por meio da operação do hub do plano de dados
Consulte Criar um hub de notificação e Atualizar um hub de notificação.
- Usar a versão da API: 2015-01
- Certifique-se de colocar FcmV1Credential após GcmCredential, pois a ordem é importante.
Por exemplo, o seguinte é o corpo da solicitação:
<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>
Etapa 2: Gerenciar o registro e a instalação
Para cenários de envio direto, vá diretamente para a etapa 3. Se você estiver usando um dos SDKs do Azure, consulte o artigo SDKs.
Opção 1: Criar o registro do FCM v1 ou atualizar o registro do GCM para o FCM v1
Se você tiver um registro GCM existente, atualize o registro para FcmV1Registration. Consulte Criar ou atualizar um registo. Se você não tiver um GcmRegistration existente, crie um novo registro como FcmV1Registration. Consulte Criar um registo. O corpo da solicitação de registro deve aparecer como no exemplo a seguir:
// 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>
Opção 2: Criar a instalação do FCM c1 ou atualizar a instalação do GCM para o FCM v1
Consulte Criar ou substituir uma instalação e definir platform
como FCMV1
.
Etapa 3: enviar uma notificação por push
Opção 1: Depurar enviar
Use este procedimento para testar notificações antes da opção 2, 3 ou 4. Consulte Hubs de notificação - Debug Send.
Nota
Use a versão da API: 2023-10-01-preview.
No cabeçalho:
Cabeçalho do pedido | Value |
---|---|
Content-Type |
application/json;charset=utf-8 |
ServiceBusNotification-Format |
Definir como fcmV1 ou template |
Servicebusnotification-Tags |
{identificador de tag única} |
Teste uma carga útil com a seguinte estrutura via debug send. Observe que o FcmV1 introduz uma mudança significativa na estruturação da carga útil da mensagem JSON:
- Toda a carga útil foi movida sob um objeto de mensagem.
- Opções específicas do Android movidas para o objeto Android e
time_to_live
agorattl
está com um valor de cadeia de caracteres. - O
data
campo agora permite apenas um mapeamento de cadeia de caracteres plana. - Para obter mais informações, consulte a referência do FCM.
Como alternativa, você pode executar um envio de teste (envio de depuração) por meio do portal do Azure:
Opção 2: Envio direto
Execute um envio direto. No cabeçalho da solicitação, defina ServiceBusNotification-Format
como fcmV1
.
Opção 3: Notificação nativa do FcmV1 (envio de audiência)
Execute um envio de notificação nativo do FcmV1. Consulte Enviar uma notificação nativa do Google Cloud Messaging (GCM). No cabeçalho da solicitação, defina ServiceBusNotification-Format
como fcmV1
. Por exemplo, no corpo da solicitação:
{
"message": {
"notification": {
"title": "Breaking News",
"body": "FcmV1 is ready."
},
"android": {
"data": {
"name": "wrench",
"mass": "1.3kg",
"count": "3"
}
}
}
}
Opção 4: modelo de notificação
Você pode testar envios de modelo com um novo corpo de solicitação seguindo a nova estrutura de carga JSON útil. Não é necessário introduzir quaisquer outras alterações. Consulte Enviar uma notificação de modelo.