Como soluciono problemas de falhas de notificação por push móvel do Firebase Cloud Messaging (FCM) no Amazon SNS?

Data da última atualização 06/10/2021

As notificações por push móveis do My Firebase Cloud Messaging (FCM) não são enviadas por meio do Amazon Simple Notification Service (Amazon SNS). Como solucionar o problema?

Resolução

Configurar e visualizar atributos de status de entrega de notificação por push para o Amazon CloudWatch Logs

Verifique se você pode receber notificações diretamente do FCM

Para ver se o problema está do lado do endpoint do Amazon SNS ou da aplicação cliente, envie uma mensagem de teste no console do FCM. Para obter instruções, consulte Enviar uma mensagem de notificação (para iOS) ou Enviar uma mensagem de notificação de teste (para Android) na documentação do FCM.

Depois de enviar a notificação de teste, o console do FCM exibirá um painel que fornece os resultados da notificação de teste. Se você não receber a notificação, siga as instruções na seção Confirmar que você está usando o tipo de mensagem correto do FCM deste artigo.

Verifique se o endpoint da plataforma associado ao dispositivo que não está recebendo notificações por push está habilitado

1.    Revise seus logs de status de entrega quanto a entregas de notificação por push com falha (“status”: “FALHA”).

2.    Confira os logs de entrega de notificação por push com falha para o seguinte valor: “providerResponse”: “Endpoint está desabilitado”. Se você vir este valor nos logs de entrega com falha, o endpoint da plataforma associado ao dispositivo que não está recebendo notificações por push está desabilitado.

3.    Se o endpoint da plataforma estiver desabilitado, habilite-o executando a ação da API SetEndpointAttributes. A execução da ação da API SetEndpointAttributes associa o endpoint ao token de dispositivo válido mais recente.

Observação: para obter mais informações, consulte Reabilitar um endpoint de plataforma associado a um token de dispositivo inválido naseção Solução de problemas de Criação de um endpoint de plataforma.

Exemplo de falha de evento de log do CloudWatch na entrega de notificação por push do FCM

{
  "notification": {
    "messageMD5Sum": "c8c339cf07dc39c9388253dgc81f257",
    "messageId": "fg207f98-0244-6767-96e2-45b1fg451gg8",
    "timestamp": "2021-05-25 22:27:51.889"
  },
  "delivery": {
    "deliveryId": "76ab7dcd-f444-5b4f-9d1b-24ea8863d9bc",
    "destination": "arn:aws:sns:us-east-1:123456789101:endpoint/GCM/MyAndroidApp/682dc992-a47f-45f7-b980-97727cce0a9c",
    "providerResponse": "Endpoint is disabled",
    "dwellTimeMs": 28,
    "attempts": 1,
    "token": "ojnco9nc9weucn9encx9ewunc9nu9w9euncec9necn9xexnexex9encewcerve0f0o0dmco9j",
    "statusCode": 400
  },
  "status": "FAILURE"
}

Confirme se você está usando o tipo de mensagem correto do FCM

Observação: o FCM suporta dois tipos de mensagens: mensagens de notificação e mensagens de dados. As mensagens de notificação são tratadas pelo SDK do FCM automaticamente. As mensagens de dados são tratadas pela aplicação cliente. Para obter mais informações, consulte Tipos de mensagens na documentação do FCM e Envio de mensagens específicas da plataforma no Guia do desenvolvedor do Amazon SNS.

Se você estiver processando dados de mensagens em sua aplicação cliente

Certifique-se de usar mensagens de dados. Para obter mais informações, consulte Mensagens de dados na documentação do FCM.

Se você quiser que o SDK do FCM trate a exibição de notificações em nome da aplicação cliente

Certifique-se de usar as mensagens de notificação. Para obter mais informações, consulte Mensagens de notificação na documentação do FCM.

Identificar e solucionar problemas de códigos de resposta a erros do FCM

1.    Revise seus logs de status de entrega quanto a entregas de notificação por push com falha (“status”: “FALHA”).

2.    Confira os logs de entrega de notificações por push com falha para ver se há outros códigos de resposta da plataforma. Em seguida, siga a Ação recomendada listada para este código na seção Códigos de resposta de erro de mensagem downstream da documentação do FCM.

Observação: para obter mais informações sobre códigos de erro do FCM e práticas recomendadas de solução de problemas, consulte o ErrorCode na documentação do FCM.