Acionadores de alertas do Firebase

O Firebase fornece alertas para uma ampla variedade de eventos, como alterações de faturamento ou alertas de velocidade do Crashlytics. Dependendo do alerta e das preferências definidas pelo membro do projeto, um alerta pode ser visualizado no console do Firebase, enviado por e-mail ou por meio de uma das integrações de terceiros disponíveis ( Slack , Jira e PagerDuty ). Cada um desses alertas e suas preferências são configurados no console do Firebase.

Além disso, o Firebase oferece acesso programático personalizável a alguns tipos de alertas por meio do Cloud Functions.

Você pode acionar funções em resposta a eventos de alerta do Firebase emitidos por estas fontes:

  • Crashlytics
  • Distribuição de aplicativos
  • Faturamento do Firebase

Por exemplo, você pode capturar um alerta do Crashlytics e enviar notificações de falhas para o Discord. Ou você pode capturar um evento de cobrança (como uma alteração no plano de cobrança do projeto) e acionar uma função que envia uma notificação ao Proprietário do projeto.

Em um ciclo de vida típico, uma função de alerta do Firebase faz o seguinte:

  1. Escuta/aguarda a emissão de um tipo de alerta específico dos Alertas do Firebase.
  2. Aciona quando o alerta é acionado e recebe a carga útil do evento com informações específicas sobre o evento.
  3. Executa as tarefas definidas na função.

Consulte a documentação de referência para tipos de alerta e cargas úteis para Crashlytics , App Distribution e cobrança .

Acionar uma função em eventos de alerta

Use o subpacote firebase-functions/v2/alerts para criar uma função que lide com eventos de alertas do Firebase. As amostras de código nesta página são baseadas em um fluxo de aplicativo que usa um webhook para postar uma mensagem em um canal Discord quando ocorre um problema grave/fatal no aplicativo.

Exemplo de notificação de falha no Discord
Exemplo de notificação de falha

A função de amostra escuta o evento onNewFatalIssuePublished conforme mostrado:

exports.postmessagetodiscord = onNewFatalIssuePublished(async (event) => {

A função então analisa o objeto de evento retornado, construindo uma mensagem para postar no canal Discord:

  // construct a helpful message to send to Discord
  const {id, title, subtitle, appVersion} = event.data.payload.issue;
  const message = `
🚨 New fatal issue in version ${appVersion} 🚨

**${title}**

${subtitle}

id: \`${id}\`
`;

Por fim, a função envia a mensagem construída para o Discord:

    const response = await postMessageToDiscord("Crashlytics Bot", message);
    if (response.ok) {
      logger.info(
          `Posted fatal Crashlytics alert ${id} to Discord`,
          event.data.payload,
      );
    } else {
      throw new Error(response.error);
    }

Dessa forma, você pode aproveitar o Cloud Functions para Firebase para responder a eventos de alertas do Firebase com a lógica personalizada mais útil para sua equipe. Além de integrar serviços como Discord, você pode escrever funções para ir além das integrações configuradas pelo console com provedores como Jira, Slack ou PagerDuty. Por exemplo, você pode adicionar campos personalizados ou outras funcionalidades ainda não suportadas.