欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

Firebase Uyarıları tetikleyicileri

Firebase, faturalandırma değişiklikleri veya Crashlytics hız uyarıları gibi çok çeşitli olaylar için uyarı sağlar. Uyarıya ve proje üyesi tarafından belirlenen tercihlere bağlı olarak, bir uyarı Firebase konsolunda görüntülenebilir, e-posta yoluyla veya mevcut üçüncü taraf entegrasyonlarından biri ( Slack , Jira ve PagerDuty ) aracılığıyla gönderilebilir. Bu uyarıların her biri ve tercihleri, Firebase konsolunda yapılandırılır.

Ayrıca Firebase, Cloud Functions aracılığıyla bazı uyarı türlerine özelleştirilebilir programlı erişim sağlar.

Şu kaynaklar tarafından yayılan Firebase Alert olaylarına yanıt olarak işlevleri tetikleyebilirsiniz:

  • Crashlytics
  • Uygulama Dağıtımı
  • Firebase faturalandırması

Örneğin, bir Crashlytics uyarısı yakalayabilir ve Discord'a çökme bildirimleri gönderebilirsiniz. Veya bir faturalandırma olayı yakalayabilir (proje için faturalandırma planındaki bir değişiklik gibi) ve proje Sahibine bir bildirim gönderen bir işlevi tetikleyebilirsiniz.

Tipik bir yaşam döngüsünde bir Firebase Alert işlevi aşağıdakileri yapar:

  1. Firebase Uyarılarından belirli bir uyarı türünün yayınlanmasını dinler/bekler.
  2. Uyarı tetiklendiğinde tetiklenir ve olayla ilgili belirli bilgilerle olay yükünü alır.
  3. Fonksiyonda tanımlanan görevleri gerçekleştirir.

Crashlytics , App Distribution ve faturalandırma için uyarı türleri ve yükleri için başvuru belgelerine bakın .

Uyarı olaylarında bir işlevi tetikleyin

Firebase Alerts olaylarını işleyen bir işlev oluşturmak için firebase-functions/v2/alerts alt paketini kullanın. Bu sayfadaki kod örnekleri, uygulamada ciddi/önemli bir sorun oluştuğunda Discord kanalına mesaj göndermek için web kancası kullanan bir uygulama akışına dayanmaktadır.

Discord'da örnek kilitlenme bildirimi
Örnek kilitlenme bildirimi

Örnek işlev, gösterildiği gibi onNewFatalIssuePublished olayını dinler:

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

İşlev daha sonra döndürülen olay nesnesini ayrıştırır ve Discord kanalına gönderilecek bir mesaj oluşturur:

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

**${title}**

${subtitle}

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

Son olarak, işlev oluşturulan mesajı Discord'a gönderir:

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

Bu şekilde, Firebase Alerts olaylarına ekibiniz için en yararlı olan özel mantıkla yanıt vermek için Cloud Functions for Firebase'den yararlanabilirsiniz. Discord gibi hizmetlerle entegrasyona ek olarak, Jira, Slack veya PagerDuty gibi sağlayıcılarla konsol tarafından yapılandırılmış entegrasyonların ötesine geçmek için işlevler yazabilirsiniz. Örneğin, özel alanlar veya halihazırda desteklenmeyen başka işlevler ekleyebilirsiniz.