Activadores de alertas de Firebase

Firebase proporciona alertas para una amplia variedad de eventos, como cambios en la facturación o alertas de velocidad de Crashlytics. Según la alerta y las preferencias establecidas por el miembro del proyecto, una alerta puede verse en la consola de Firebase, enviarse por correo electrónico o enviarse a través de una de las integraciones de terceros disponibles ( Slack , Jira y PagerDuty ). Cada una de estas alertas y sus preferencias se configuran en la consola de Firebase.

Además, Firebase brinda acceso programático personalizable a algunos tipos de alertas a través de Cloud Functions.

Puede activar funciones en respuesta a eventos de Firebase Alert emitidos por estas fuentes:

  • Crashlytics
  • Distribución de aplicaciones
  • Facturación de base de fuego

Por ejemplo, podría capturar una alerta de Crashlytics y enviar notificaciones de fallas a Discord. O podría capturar un evento de facturación (como un cambio en el plan de facturación del proyecto) y activar una función que envíe una notificación al propietario del proyecto.

En un ciclo de vida típico, una función de alerta de Firebase hace lo siguiente:

  1. Escucha/espera a que se emita un tipo de alerta específico desde Firebase Alerts.
  2. Se activa cuando se dispara la alerta y recibe la carga útil del evento con información específica sobre el evento.
  3. Realiza las tareas definidas en la función.

Consulte la documentación de referencia para conocer los tipos de alerta y las cargas útiles de Crashlytics , App Distribution y facturación .

Activar una función en eventos de alerta

Use el firebase-functions/v2/alerts para crear una función que maneje los eventos de Firebase Alerts. Los ejemplos de código en esta página se basan en un flujo de aplicación que usa un webhook para publicar un mensaje en un canal de Discord cuando ocurre un problema grave/fatal en la aplicación.

Ejemplo de notificación de bloqueo en Discord
Ejemplo de notificación de bloqueo

La función de muestra escucha el evento onNewFatalIssuePublished como se muestra:

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

Luego, la función analiza el objeto de evento devuelto, construyendo un mensaje para publicar en el canal de 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}\`
`;

Finalmente, la función envía el mensaje construido a 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);
    }

De esta forma, puede aprovechar Cloud Functions for Firebase para responder a los eventos de alertas de Firebase con la lógica personalizada que sea más útil para su equipo. Además de integrarse con servicios como Discord, puede escribir funciones para ir más allá de las integraciones configuradas por consola con proveedores como Jira, Slack o PagerDuty. Por ejemplo, puede agregar campos personalizados u otra funcionalidad que aún no se admita.