FCM — o que é, princípios do Firebase Cloud Messaging no desenvolvimento

Autor: IT Sectr Publicado: 2026-03-19 Tempo de leitura: 8 min

FCM (Firebase Cloud Messaging) é um serviço multiplataforma do Google para entrega de notificações push e transferência de dados entre um servidor e aplicativos móveis. Ele suporta Android, iOS e plataformas web através de uma API única. De acordo com a Documentação do Firebase, o FCM processa mais de 1 bilhão de mensagens diariamente em todo o mundo.

Principais pontos

  • FCM é um serviço multiplataforma do Google para envio de notificações push e dados
  • Arquitetura — o cliente recebe um token de registro, o servidor envia mensagens através do Firebase Connection Server
  • Tipos de mensagem — notification (exibição automática) e data (processamento completo no app)
  • Entrega — o FCM usa conexão persistente ou filas prioritárias para entrega garantida
  • Integração — configuração via Firebase SDK, ajuste do google-services.json e configuração do servidor

O que é FCM?

Firebase Cloud Messaging (FCM) é um serviço em nuvem do Google que garante a entrega confiável de notificações push e mensagens de dados para dispositivos móveis. Anteriormente conhecido como Google Cloud Messaging (GCM), o FCM se tornou a ferramenta principal para notificações multiplataforma no ecossistema Firebase.

O FCM seleciona automaticamente o canal de entrega ideal dependendo da plataforma: no Android, usa sua própria conexão FCM; no iOS, usa APNS (através do gateway FCM). O desenvolvedor não precisa implementar duas integrações diferentes — o FCM cuida do roteamento.

O serviço fornece uma API REST unificada e um Admin SDK para envio de mensagens. Isso permite enviar notificações do lado do servidor sem estar vinculado a uma plataforma de destinatário específica.

Principais capacidades do FCM

O FCM suporta vários modos de entrega: uma única mensagem para um dispositivo específico, transmissão em grupo por tópico e envio segmentado por condições. O envio programado e o teste A/B do conteúdo de notificações também estão disponíveis.

Como funciona o Firebase Cloud Messaging?

A arquitetura do FCM é baseada em três componentes: o aplicativo cliente, o Firebase Connection Server e o servidor de aplicativos. O cliente se registra no FCM na inicialização e recebe um token de registro único — uma string que identifica o dispositivo para o aplicativo em questão.

O servidor de aplicativos envia uma solicitação à API REST do FCM, especificando o token do destinatário ou o tópico. O Firebase Connection Server entrega a mensagem usando uma conexão XMPP persistente ou solicitação HTTP. Se o dispositivo estiver offline, a mensagem é enfileirada e entregue quando a conexão for restaurada.

O FCM garante a entrega usando filas prioritárias e um mecanismo de confirmação. No Android, a mensagem é armazenada por até 28 dias na fila; no iOS, até 4 semanas (via APNS). Após a data de expiração, a mensagem é excluída sem notificação.

Ciclo de vida do token FCM

O token de registro pode mudar em vários casos: ao restaurar dados do aplicativo, ao atualizar para uma nova versão ou ao limpar o cache. O aplicativo deve implementar FirebaseMessagingService.onNewToken para lidar com atualizações de token e sincronizar com o servidor.

Tipos de mensagens FCM

O FCM suporta dois tipos de payload: notification e data. Cada tipo determina como e quando a mensagem é processada no dispositivo do destinatário.

ParâmetroNotificationData
Exibição automáticaSim, se o app estiver em segundo planoNão, apenas no app
ProcessamentoSistema/NOS — em segundo plano; app — em primeiro planoSempre no app (onMessageReceived)
Tamanho máximo4 KB4 KB
Chaves personalizadasLimitado a campos predefinidosQuaisquer pares chave-valor
Requer CollapseKeyOpcionalOpcional para agrupamento

Na prática, recomenda-se usar mensagens data quando o aplicativo precisar de processamento completo da notificação no onMessageReceived. Mensagens notification são adequadas para cenários simples onde a exibição do sistema é suficiente.

FCM e APNS: comparação de abordagens

FCM e APNS são os dois principais serviços de entrega push. O FCM funciona como um gateway multiplataforma, enquanto o APNS é apenas para o ecossistema Apple. Suas principais diferenças estão na arquitetura, requisitos de certificados e mecanismos de roteamento.

  • Multiplataforma — FCM suporta Android, iOS, Web; APNS apenas iOS, macOS, watchOS, tvOS
  • Autenticação — FCM usa Server Key ou OAuth 2.0; APNS usa certificado ou Token-based (chave p8)
  • Prioridade da mensagem — FCM tem normal/high; APNS tem immediate/power-efficient consideration
  • Tópicos — FCM suporta assinatura de tópicos nativamente; APNS requer lógica de servidor

A escolha entre FCM e APNS direto depende da arquitetura do projeto. Para aplicativos multiplataforma, o FCM é a escolha ideal. Para projetos apenas iOS, o trabalho direto com APNS via API HTTP/2 é aceitável.

Quando escolher FCM em vez de APNS direto

O FCM é justificado quando o projeto usa Android e iOS simultaneamente, bem como quando são necessários analytics do Firebase, teste A/B de notificações ou tópicos sem lógica de servidor. O APNS direto é preferível para aplicativos apenas iOS com dependências mínimas e requisitos rigorosos de latência de entrega.

Integração do FCM no Android

Para conectar o FCM a um aplicativo Android, é necessário adicionar o SDK do Firebase e configurar o google-services.json na raiz do projeto. Após o registro do token, o aplicativo está pronto para receber mensagens através do FirebaseMessagingService.

kotlin
// build.gradle (Module)
dependencies {
    implementation("com.google.firebase:firebase-messaging:24.1.0")
}

// AndroidManifest.xml
<service android:name=".MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

class MyFirebaseMessagingService :
    FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendTokenToServer(token)
    }

    override fun onMessageReceived(message: RemoteMessage) {
        message.notification?.let {
            showNotification(it.title, it.body)
        }
    }
}

Após a configuração, o aplicativo recebe automaticamente um token FCM na primeira inicialização. O token deve ser enviado ao servidor do aplicativo para posterior envio de notificações a este dispositivo.

Configuração de um canal para notificações FCM

No Android 8+, antes de enviar uma notificação FCM com exibição automática, é necessário criar um NotificationChannel. As mensagens notification do FCM usam o ID de canal padrão, mas é recomendável criar um canal personalizado através do FirebaseMessagingService ao receber a primeira mensagem. Mensagens data não requerem um canal — o aplicativo decide por si mesmo como e quando mostrar a notificação.

Integração do FCM no iOS

No iOS, o FCM atua como intermediário entre o servidor do aplicativo e o APNS. O Firebase recebe a mensagem do servidor, a encapsula no formato APNS e a envia através do gateway da Apple. O desenvolvedor precisa configurar uma chave ou certificado APNS no console do Firebase.

swift
import FirebaseMessaging
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        FirebaseApp.configure()
        UNUserNotificationCenter.current().delegate = self

        Messaging.messaging().delegate = self
        return true
    }
}

extension AppDelegate: MessagingDelegate {
    func messaging(
        _ messaging: Messaging,
        didReceiveRegistrationToken fcmToken: String?
    ) {
        UserDefaults.standard.set(fcmToken, forKey: "fcm_token")
    }
}

No iOS, o registro no APNS ocorre de forma assíncrona. O SDK do FCM obtém automaticamente o token APNS e o passa para o servidor Firebase. didReceiveRegistrationToken é acionado ao receber um novo token FCM, que combina o token APNS com o identificador do projeto.

Verificação do status de entrega

O FCM fornece um console Firebase para monitorar a entrega: o número de notificações enviadas, recebidas e exibidas. Um callback de status também está disponível através do Firebase Cloud Functions para rastrear erros de entrega no lado do servidor. Métricas principais: impressões e aberturas de notificações.

Melhores práticas do FCM

Ao trabalhar com FCM, é importante escolher o tipo de mensagem correto para cada cenário. Para notificações simples com exibição automática, use mensagens notification. Para casos em que o aplicativo precisa processar dados antes de exibir, use mensagens data. Um tipo misto (notification + data) é recomendado apenas se os dados forem necessários para análises e não para alterar o conteúdo da notificação.

Gerencie os tokens centralizadamente. Armazene os tokens atuais no servidor em uma tabela vinculada ao usuário e à plataforma. Implemente um mecanismo de limpeza de tokens obsoletos: ao encontrar um erro NotRegistered ou InvalidRegistration, exclua o token do banco de dados. Os tokens raramente mudam, mas sua limpeza é um elemento obrigatório do suporte FCM.

Use chaves de colapso (collapseKey) para agrupar mensagens. Se você estiver enviando várias notificações do mesmo tipo (por exemplo, "atualização da taxa de câmbio), defina o mesmo collapseKey. O FCM entregará apenas a última mensagem do grupo, reduzindo a carga no dispositivo e evitando sobrecarregar o usuário com notificações.

Monitore a entrega através do Firebase Console e do Cloud Functions. As análises do FCM mostram o número de notificações enviadas, recebidas e exibidas. Se a taxa de exibição estiver abaixo de 70%, verifique as configurações de canal no Android e as permissões no iOS. A baixa entrega geralmente está relacionada a canais desativados ou proibições de notificações. Quinto: use o teste A/B do Firebase para otimizar o texto das notificações e o horário de envio — isso aumenta a conversão de abertura em 15–25% de acordo com os dados do Firebase.

Perguntas frequentes

Qual é a diferença entre FCM e GCM?

FCM é a atualização evolutiva do GCM (Google Cloud Messaging). FCM oferece configuração simplificada através do Firebase Console, análises integradas, tópicos e suporte a Web Push. O GCM foi oficialmente descontinuado em abril de 2019, e todos os projetos devem ser migrados para o FCM.

Quantas mensagens podem ser enviadas através do FCM gratuitamente?

Firebase Cloud Messaging é um serviço gratuito sem limites no número de mensagens. O pagamento é cobrado apenas pelo uso de outros serviços do Firebase, como Cloud Functions ou Firestore. O FCM não requer assinatura Spark ou Blaze para envio básico de notificações.

Por que o token FCM pode mudar?

O token FCM muda quando: restaurando o aplicativo de um backup, limpando os dados do aplicativo, reinstalando, atualizando para uma nova versão com um Sender ID alterado. Sempre manipule onNewToken no FirebaseMessagingService para enviar o novo token ao servidor.

O FCM funciona na China?

O FCM do Google está bloqueado na China. Para entrega de notificações na China, são usados serviços alternativos: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. Para entrega multiplataforma, são usados serviços multiprovider como Getui.

Como verificar se o FCM está configurado corretamente?

Use o console Firebase integrado: selecione "Cloud Messaging" — "Send Test Message". Insira um token de teste e envie uma mensagem notification. A notificação deve aparecer no dispositivo. Você também pode monitorar os logs do FirebaseMessagingService.onMessageReceived.

Resumo

  • FCM é um serviço em nuvem multiplataforma do Google para entrega de notificações push e dados
  • Token é um identificador único de dispositivo usado para envio direcionado de mensagens
  • Notification é um tipo de mensagem com exibição automática pelo sistema em modo de segundo plano
  • Data é um tipo de mensagem com payload completo processado apenas dentro do aplicativo
  • Tópicos é um mecanismo de transmissão em grupo baseado em assinatura de tópicos sem armazenar tokens no servidor
  • Gateway APNS — para iOS, o FCM atua como intermediário, encaminhando mensagens através do APNS
  • Gratuito — o FCM não cobra pelo número de mensagens enviadas

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também