Firebase zapewnia alerty dotyczące szerokiego zakresu zdarzeń związanych z zarządzaniem projektami i aplikacjami. Oto kilka przykładowych zdarzeń, kiedy Firebase może wysłać Ci alert tego typu:
- W przypadku Crashlytics możemy Cię ostrzec, jeśli Twoja aplikacja odnotuje gwałtowny wzrost liczby awarii.
- W przypadku monitorowania wydajności możemy Cię ostrzec, jeśli czas uruchomienia Twojej aplikacji przekroczy skonfigurowany próg.
- W przypadku dystrybucji aplikacji możemy Cię powiadomić, jeśli jeden z Twoich testerów zarejestruje nowe urządzenie z systemem iOS.
W zależności od alertu i preferencji ustawionych przez członka projektu , Firebase wyświetla tego typu alerty w konsoli Firebase lub wysyła je e-mailem.
Na tej stronie opisano sposób pisania funkcji obsługujących zdarzenia alertów.
Jak to działa?
Możesz wyzwalać funkcje w odpowiedzi na zdarzenia alertów emitowane przez te źródła:
- Obsługuj zdarzenie alertu dystrybucji aplikacji
- Obsługuj zdarzenie alertu Crashlytics
- Obsługuj zdarzenie alertu monitorowania wydajności
W typowym cyklu życia funkcja wyzwalana przez zdarzenie alertu wykonuje następujące czynności:
- Nasłuchuje/czeka na wyemitowanie określonego typu alertu z Firebase.
- Wyzwala się, gdy alert jest emitowany i odbiera ładunek zdarzenia, który zawiera określone informacje o zdarzeniu.
- Wywołuje kod Twojej funkcji, aby obsłużyć ładunek zdarzenia.
Wyzwalaj funkcję w przypadku zdarzeń alertu
Użyj podpakietu firebase-functions/v2/alerts
aby napisać funkcję obsługującą zdarzenia alertów. Poniższe przykłady dotyczące konkretnych produktów przedstawiają przepływ pracy, w którym funkcja używa webhooka do publikowania wiadomości na kanale Discord, gdy alert dotyczący tego produktu jest emitowany z Firebase.
Obsługuj zdarzenie alertu Crashlytics
W poniższym przykładzie Crashlytics używasz Cloud Functions for Firebase do obsługi zdarzenia alertu dotyczącego nowego krytycznego problemu z awarią. Ta funkcja publikuje informacje o alercie w wiadomości na kanale Discord.
Funkcja nasłuchuje zdarzenia onNewFatalIssuePublished
:
exports.postfatalissuetodiscord = onNewFatalIssuePublished(async (event) => {
Następnie funkcja analizuje zwrócony obiekt zdarzenia, tworząc wiadomość do opublikowania na kanale Discord:
// 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}\` `;
Na koniec funkcja wysyła skonstruowaną wiadomość do Discorda:
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); }
Aby dowiedzieć się więcej o wszystkich zdarzeniach alertów Crashlytics, które można rejestrować, przejdź do dokumentacji referencyjnej alertów Crashlytics .
Obsługuj zdarzenie alertu monitorowania wydajności
Przykład w tej sekcji pokazuje, jak napisać funkcję dla alertów progu wydajności.
W tym przykładzie funkcja onThresholdAlertPublished
eksportuje funkcję chmurową, która nasłuchuje zdarzeń typu PerformanceEvent<ThresholdAlertPayload>
, które są wysyłane za każdym razem, gdy uruchamiany jest alert dotyczący progu wydajności:
exports.postperformancealerttodiscord = onThresholdAlertPublished( async (event) => {
Następnie funkcja analizuje zwrócony obiekt zdarzenia, analizując przydatne informacje z ładunku zdarzenia i konstruując wiadomość do opublikowania na kanale Discord:
// construct a helpful message to send to Discord const appId = event.appId; const { eventName, metricType, eventType, numSamples, thresholdValue, thresholdUnit, conditionPercentile, appVersion, violationValue, violationUnit, investigateUri, } = event.data.payload; const message = ` ⚠️ Performance Alert for ${metricType} of ${eventType}: **${eventName}** ⚠️ App id: ${appId} Alert condition: ${thresholdValue} ${thresholdUnit} Percentile (if applicable): ${conditionPercentile} App version (if applicable): ${appVersion} Violation: ${violationValue} ${violationUnit} Number of samples checked: ${numSamples} **Investigate more:** ${investigateUri} `;
Na koniec funkcja wysyła skonstruowaną wiadomość do Discord poprzez żądanie HTTP:
const response = await postMessageToDiscord( "Firebase Performance Bot", message); if (response.ok) { logger.info( `Posted Firebase Performance alert ${eventName} to Discord`, event.data.payload, ); } else { throw new Error(response.error); }
Aby dowiedzieć się więcej o wszystkich zdarzeniach alertów dotyczących wydajności, które można przechwytywać, przejdź do dokumentacji referencyjnej dotyczącej alertów monitorowania wydajności .
Obsługuj zdarzenie alertu dystrybucji aplikacji
Przykład w tej sekcji pokazuje, jak napisać funkcję dla nowych alertów urządzenia z systemem iOS testera.
W tym przykładzie funkcja onNewTesterIosDevicePublished
eksportuje funkcję chmury, która nasłuchuje zdarzeń typu AppDistributionEvent<NewTesterDevicePayload>
, które są wysyłane za każdym razem, gdy tester rejestruje nowe urządzenie z systemem iOS. Po zarejestrowaniu nowego urządzenia z systemem iOS należy zaktualizować profil udostępniania za pomocą identyfikatora UDID tego urządzenia, a następnie ponownie rozpowszechnić aplikację.
exports.postnewduuidtodiscord = onNewTesterIosDevicePublished(async (event) => {
Następnie funkcja analizuje zwrócone, analizując przydatne informacje z ładunku zdarzenia i konstruując wiadomość do opublikowania na kanale Discord:
// construct a helpful message to send to Discord const appId = event.appId; const { testerDeviceIdentifier, testerDeviceModelName, testerEmail, testerName, } = event.data.payload; const message = ` 📱 New iOS device registered by ${testerName} <${testerEmail}> for ${appId} UDID **${testerDeviceIdentifier}** for ${testerDeviceModelName} `;
Na koniec funkcja wysyła skonstruowaną wiadomość do Discord poprzez żądanie HTTP:
const response = await postMessageToDiscord("AppDistribution Bot", message); if (response.ok) { logger.info( `Posted iOS device registration alert for ${testerEmail} to Discord`, ); } else { throw new Error(response.error); }
Aby dowiedzieć się więcej o wszystkich zdarzeniach alertów związanych z dystrybucją aplikacji, które można przechwytywać, przejdź do dokumentacji referencyjnej dotyczącej alertów dotyczących dystrybucji aplikacji .
Aby dowiedzieć się, jak korzystać z funkcji uruchamianej przez alert Firebase z aplikacji App Distribution, który zawiera informacje zwrotne w aplikacji, zobacz Wysyłanie opinii w aplikacji do Jira .