Migração do Google Firebase Cloud Messaging usando a API REST e o portal do Azure
Este artigo descreve os principais recursos para integrar os Hubs de Notificação do Azure com o Firebase Cloud Messaging (FCM) v1. Como lembrete, a Google deixará de dar suporte ao HTTP herdado do FCM em 20 de junho de 2024, portanto, antes dessa data, você deve migrar seus aplicativos e conteúdos de notificação para o novo formato. 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 legadas do FCM não terão mais suporte e serão descontinuadas. Para evitar qualquer interrupção no seu serviço de notificação push, você deve migrar para o protocolo FCM v1 o mais rápido possível.
Conceitos do FCM v1
- Um novo tipo de plataforma chamado FCM v1 tem suporte.
- Novas APIs, credenciais, instalações e registros são usados para o FCM v1.
Observação
A plataforma FCM existente é conhecida como FCM herdado neste artigo.
Etapas da migração
A API herdada do FCM (Firebase Cloud Messaging) será preterida até julho de 2024. Em 1º de março de 2024, você poderá começar a migrar do protocolo HTTP herdado para o FCM v1. É necessário 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 pelo portal do Azure, por uma operação de hub de plano de gerenciamento ou pelo hub de plano de dados.
Criar arquivo JSON da conta de serviço do Google
No Console do Firebase, selecione seu projeto e Acesse Configurações do Projeto.
Selecione a guia Contas de serviço, crie uma conta de serviço e gere uma chave privada da sua conta de serviço do Google.
Selecione Gerar nova chave privada para gerar um arquivo JSON. Baixe e abra o arquivo. Substitua os valores de
project_id
,private_key
eclient_email
, pois eles são necessários para atualizar as credenciais do hub dos Hubs de Notificação do Azure.OR
Se você quiser criar uma conta de serviço com permissão de acesso personalizada, poderá criar uma conta de serviço pela página Contas de serviço do > IAM e Administrador. Acesse a página diretamente clicando em Gerenciar as permissões da conta de serviço. Você pode criar uma conta de serviço que tenha uma das seguintes funções:
- Administrador do Firebase (roles/firebase.admin)
- Administrador do Firebase Grow (roles/firebase.growthAdmin)
- Agente de Serviço de Administrador do SDK do Administrador do Firebase (roles/firebase.sdkAdminServiceAgent)
- Agente do Serviço de Provisionamento do SDK do Firebase (roles/firebase.sdkProvisioningServiceAgent)
Opção 1: atualizar as credenciais do FcmV1 pelo portal do Azure
Acesse o hub de notificação no portal do Azure e selecione Configurações > Google (FCM v1). Obtenha os valores Chave Privada, ID do Projeto e Email do Cliente do arquivo JSON da conta de serviço adquirido da seção anterior e salve-os para usar posteriormente.
Opção 2: atualizar as credenciais do FcmV1 pela operação do hub do plano de gerenciamento
Veja a descrição de uma FcmV1Credential do NotificationHub.
Usar a versão da API: 2023-10-01-preview
FcmV1CredentialProperties:
Nome Type clientEmail
string privateKey
string projectId
string
Opção 3: atualizar as credenciais do FcmV1 pela 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 depois de GcmCredential, pois a ordem é importante.
Por exemplo, o corpo da solicitação é o seguinte:
<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
Quanto aos cenários de envio direto, prossiga diretamente para a Etapa 3. Se você estiver usando um dos SDKs do Azure, consulte o Artigo dos SDKs.
Opção 1: criar registro do FCM v1 ou atualizar o registro do GCM para FCM v1
Se você tiver um registro GCM existente, atualize o registro para FcmV1Registration. Consulte Criar ou atualizar um registro. Se você não tiver um GcmRegistration existente, crie um novo registro como FcmV1Registration. Consulte Criar um registro. 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 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: enviar depuração
Use este procedimento para testar as notificações antes das Opções 2, 3 ou 4. Consulte Hubs de Notificação – Enviar Depuração.
Observação
Use a versão da API: 2023-10-01-preview.
No cabeçalho:
Cabeçalho da solicitação | Valor |
---|---|
Content-Type |
application/json;charset=utf-8 |
ServiceBusNotification-Format |
Definir como fcmV1 ou template |
Servicebusnotification-Tags |
{identificador de marca única} |
Teste um conteúdo com a estrutura a seguir pelo envio de depuração. Observe que o FcmV1 apresenta uma alteração significativa na estruturação do conteúdo da mensagem JSON:
- Toda a carga movida sob um objeto de mensagem.
- Opções específicas do Android movidas para o objeto do Android e
time_to_live
já estáttl
com um valor de cadeia de caracteres. - O campo
data
já permite apenas um mapeamento de cadeia de caracteres simples para a cadeia de caracteres. - Para obter mais informações, consulte Referência do FCM.
Como alternativa, você pode executar um envio de teste (envio de depuração) pelo portal do Azure:
Opção 2: envio direto
Executar um envio direto. No cabeçalho da solicitação, defina ServiceBusNotification-Format
como fcmV1
.
Opção 3: notificação nativa do FcmV1 (envio de público)
Execute um envio de notificação nativa 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: notificação de modelo
Você pode testar os envios de modelo com um novo corpo de solicitação após a nova estrutura de conteúdo JSON. Não é necessário fazer outras alterações. Consulte Enviar uma notificação de modelo.
Próximas etapas
Migração do Firebase Cloud Messaging usando os SDKs do Azure