Extiende Firebase Crashlytics con Cloud Functions

Puedes activar una función en respuesta a los eventos de problemas de Crashlytics, lo que incluye problemas nuevos, recurrentes y alertas de velocidad.

Activa una función de Crashlytics

Para activar una función de Crashlytics, primero debes generar un IssueBuilder con functions.crashlytics.issue() y, luego, llamar a la función issue‑generation respectiva del compilador, como se muestra a continuación:

funcióndescription
onNew()

Los eventos de problemas nuevos se activan cuando tu app tiene un problema por primera vez.


exports.sendOnNewIssue = functions.crashlytics.issue().onNew(async (issue) => {
  // ...
});
onRegressed()

Los eventos de problemas recurrentes se activan cuando vuelve a ocurrir un problema después de resolverse en Crashlytics. Ejemplo:


exports.sendOnRegressedIssue = functions.crashlytics.issue().onRegressed(async (issue) => {
  // ...
});
onVelocityAlert()

Los eventos de alertas de velocidad se activan cuando ocurre una falla en una cantidad con importancia estadística de sesiones dentro de una compilación determinada. Ejemplo:


exports.sendOnVelocityAlert = functions.crashlytics.issue().onVelocityAlert(async (issue) => {
  // ...
});

Accede a los atributos del evento

Todos los activadores de eventos que se crean con IssueBuilder muestran un Issue que contiene propiedades, como la información relevante de la app, el nombre y el ID del problema, entre otros datos.

Por ejemplo, cuando surja un problema nuevo en tu app, puedes enviar un mensaje a Slack con su ID y título:

exports.postOnNewIssue = functions.crashlytics.issue().onNew(async (issue) => {
  const issueId = issue.issueId;
  const issueTitle = issue.issueTitle;
  const appName = issue.appInfo.appName;
  const appPlatform = issue.appInfo.appPlatform;
  const latestAppVersion = issue.appInfo.latestAppVersion;

  const slackMessage = `<!here|here> There is a new issue - ${issueTitle} (${issueId}) ` +
      `in ${appName}, version ${latestAppVersion} on ${appPlatform}`;

  await notifySlack(slackMessage);
  console.log(`Posted new issue ${issueId} successfully to Slack`);
});