Você tem duas opções para atribuir a prioridade de entrega para mensagens downstream no Android: prioridade normal e alta. A entrega de mensagens de prioridade normal e alta funciona da seguinte forma:
Prioridade normal. Essa é a prioridade padrão para mensagens de dados. As mensagens com prioridade normal são entregues imediatamente quando o dispositivo não está em suspensão. Quando o dispositivo está no modo Soneca, a entrega pode ser adiada para economizar bateria até que esse modo seja alterado. Para mensagens menos afetadas pelo tempo, como enviar notificações de novos e-mails, manter a sincronização da sua IU ou sincronizar os dados do app em segundo plano, escolha a prioridade normal de entrega.
Ao receber uma mensagem de prioridade normal no Android que solicite uma sincronização de dados em segundo plano para o aplicativo, é possível agendar uma tarefa com o WorkManager (em inglês) que lidará com ela quando a rede estiver disponível.
Prioridade alta. O FCM tenta enviar mensagens de prioridade alta imediatamente, permitindo que o FCM ative um dispositivo em suspensão quando necessário e execute tarefas de processamento limitadas (inclusive acesso muito limitado à rede). As mensagens de prioridade alta devem resultar geralmente na interação do usuário com o app ou as notificações dele.
Como usar mensagens de prioridade alta para Android
As mensagens de prioridade alta no Android são destinadas a conteúdo visível pelo usuário e urgente. Além disso, elas precisam gerar notificações voltadas para o usuário. Se o FCM detectar um padrão em que as mensagens não gerem notificações para usuário, suas mensagens poderão passar a ter prioridade normal. Para determinar se é necessário remover a prioridade das mensagens, o FCM usa sete dias de comportamento da mensagem. Essa decisão é feita individualmente para cada instância do aplicativo. Se, em resposta a mensagens de prioridade alta, as notificações forem exibidas de maneira visível para o usuário, suas futuras mensagens de prioridade alta não serão priorizadas. Isso acontece se a notificação for exibida pelo SDK do FCM por uma mensagem de notificação ou por uma notificação gerada pelo desenvolvedor usando uma mensagem de dados.
Como avaliar a redução de prioridade da mensagem no Android
Mensagens individuais. Na entrega, é possível determinar se uma mensagem individual foi priorizada ou não, comparando a prioridade entregue de getPriority() com a prioridade original de getOriginalPriority().
Todas as mensagens. A API FCM Aggregate Delivery Data pode informar qual porcentagem das suas mensagens para Android estão tendo a prioridade reduzida. Algumas mensagens podem ser omitidas dos relatórios de dados agregados, mas, no geral, fornecem uma visão global das taxas de redução de prioridade das mensagens. Consulte nosso artigo sobre dados de entrega agregados para mais informações e exemplos de código para consultar a API. Também é possível saber mais em API Explorer.
Solução de problemas
Verifique se a instância do app tem as notificações ativadas. Se o usuário tiver desativado a permissão de notificação do seu app, nenhuma das notificações será postada. Por isso, suas mensagens não serão priorizadas. Verifique se as notificações estão ativadas antes de enviar mensagens de prioridade alta para uma instância do aplicativo.
Não ligue para casa antes de postar uma notificação. Como uma pequena parcela dos dispositivos móveis Android funciona em redes de alta latência, evite abrir uma conexão com seus servidores antes de exibir uma notificação. Retornar uma chamada ao servidor antes de o tempo de processamento permitido terminar pode ser arriscado para usuários em redes de alta latência. Em vez disso, inclua o conteúdo da notificação na mensagem do FCM e exiba-o imediatamente. Para sincronizar conteúdo extra no app para Android, programe uma tarefa com o WorkManager (em inglês) para lidar com isso em segundo plano.