Cloud Functions bietet Entwicklern Zugriff auf Firebase- und Google Cloud-Ereignisse sowie skalierbare Rechenleistung, um Code als Reaktion auf diese Ereignisse auszuführen. Es ist zwar davon auszugehen, dass Firebase-Apps Cloud Functions auf einzigartige Weise verwenden, um ihre individuellen Anforderungen zu erfüllen, aber typische Anwendungsfälle können in diese Bereiche fallen:
- Nutzer benachrichtigen, wenn etwas Interessantes passiert
- Datenbankbereinigung und ‑wartung ausführen
- Führen Sie intensive Aufgaben in der Cloud und nicht in der Anwendung aus.
- Einbindung in Dienste und APIs von Drittanbietern
Sehen Sie sich die Anwendungsfälle und Beispiele für jede Kategorie an, die Sie interessiert, und fahren Sie dann mit unserer Einstiegsanleitung oder spezifischen Anleitungen für Authentifizierungsereignisse, Analyseereignisse und mehr fort.
Nutzer benachrichtigen, wenn etwas Interessantes passiert
Entwickler können Cloud Functions verwenden, um Nutzer mit relevanten Informationen zu einer App zu beschäftigen und auf dem neuesten Stand zu halten. Ein Beispiel wäre eine App, mit der Nutzer den Aktivitäten anderer Nutzer in der App folgen können. Jedes Mal, wenn sich ein Nutzer als Follower eines anderen Nutzers hinzufügt, findet im Realtime Database ein Schreibvorgang statt. Dann könnte dieses Schreibereignis eine Funktion zum Erstellen von Firebase Cloud Messaging-Benachrichtigungen (FCM) auslösen, um die entsprechenden Nutzer darüber zu informieren, dass sie neue Follower gewonnen haben.
- Die Funktion wird bei Schreibvorgängen im Pfad Realtime Database ausgelöst, in dem die Follower gespeichert sind.
- Die Funktion verfasst eine Nachricht, die über FCM gesendet wird.
- FCM sendet die Benachrichtigung an das Gerät des Nutzers.
Funktionierenden Code finden Sie im Beispielcode auf GitHub:
- Node.js: fcm-notifications
- Python: fcm-notifications
Weitere interessante Anwendungsfälle für Benachrichtigungen
- Senden Sie Bestätigungs-E-Mails an Nutzer, die sich für einen Newsletter anmelden.
- Senden Sie eine Begrüßungs-E-Mail, wenn ein Nutzer die Registrierung abgeschlossen hat.
- Sendet eine SMS-Bestätigung, wenn ein Nutzer ein neues Konto erstellt.
Datenbankbereinigung und ‑wartung durchführen
Mit der Cloud Functions-Datenbankereignisbehandlung können Sie Realtime Database oder Cloud Firestore als Reaktion auf das Nutzerverhalten ändern und das System im gewünschten Status halten. Sie können beispielsweise Schreibereignisse überwachen und das Format bestimmter Strings in den Nachrichten der Nutzer ändern (z. B. in Großbuchstaben). Das könnte so funktionieren:
- Der Datenbank-Event-Handler der Funktion wartet auf Schreibereignisse in einem bestimmten Pfad und ruft Ereignisdaten ab, die den Text von Nachrichten enthalten.
- Die Funktion verarbeitet den Text, um Strings in Großbuchstaben zu ändern.
- Die Funktion schreibt den aktualisierten Text zurück in die Datenbank.
Funktionierenden Code finden Sie im Beispielcode auf GitHub:
- Node.js: uppercase-rtdb
- Python: uppercase-rtdb
Andere Anwendungsfälle für Datenbankbereinigung und -wartung
- Inhalte eines gelöschten Nutzers aus Realtime Database entfernen
- Begrenzen Sie die Anzahl der untergeordneten Knoten in einer Firebase-Datenbank.
- Anzahl der Elemente in einer Realtime Database-Liste erfassen
- Kopieren Sie Daten aus Realtime Database in Google Cloud BigQuery.
- Text in Emojis umwandeln
- Berechnete Metadaten für Datenbankeinträge verwalten
Komplexe Aufgaben in der Cloud statt in der Anwendung ausführen
Mit Cloud Functions können Sie ressourcenintensive Aufgaben (hohe CPU- oder Netzwerkauslastung) in die Google Cloud auslagern, anstatt sie auf dem Gerät eines Nutzers auszuführen. So lässt sich die Reaktionsfähigkeit Ihrer App verbessern. Sie können beispielsweise eine Funktion schreiben, die auf Bilduploads zu Cloud Storage wartet, das Bild auf die Instanz herunterlädt, auf der die Funktion ausgeführt wird, es ändert und wieder auf Cloud Storage hochlädt. Sie können die Größe ändern, Bilder zuschneiden oder mit Tools wie sharp oder Pillow konvertieren.
- Eine Funktion wird ausgelöst, wenn eine Bilddatei in Cloud Storage hochgeladen wird.
- Die Funktion lädt das Bild herunter und erstellt eine Miniaturansicht davon.
- Die Funktion schreibt diesen Thumbnail-Speicherort in die Datenbank, damit eine Client-App ihn finden und verwenden kann.
- Die Funktion lädt das Thumbnail an einen neuen Speicherort in Cloud Storage hoch.
- Die App lädt den Thumbnail-Link herunter.
Eine Schritt-für-Schritt-Anleitung für ein Beispiel zur Bildverarbeitung finden Sie in der Anleitung Cloud Storage-Ereignisse verarbeiten.
Weitere Beispiele für Batchjobs in der Firebase-Cloud
- Löschen Sie regelmäßig nicht verwendete Firebase-Konten Node.js | Python.
- Hochgeladene Bilder automatisch sichern Node.js | Python
- Bulk-E-Mails an Nutzer senden.
- Daten regelmäßig zusammenfassen.
- Warteschlange mit ausstehenden Aufgaben verarbeiten
In Dienste und APIs von Drittanbietern einbinden
Cloud Functions kann dabei helfen, dass Ihre Anwendung besser mit anderen Diensten zusammenarbeitet. Dazu werden Web-APIs aufgerufen und verfügbar gemacht. Eine App, die für die Zusammenarbeit bei der Entwicklung verwendet wird, könnte beispielsweise GitHub-Commits in einem Arbeitsgruppen-Chatraum posten.
- Ein Nutzer überträgt Commits per Push an ein GitHub-Repository.
- Eine HTTPS-Funktion wird über die GitHub Webhook API ausgelöst.
- Die Funktion sendet eine Benachrichtigung über das Commit an den Slack-Kanal eines Teams.
Weitere Möglichkeiten zur Einbindung in Dienste und APIs von Drittanbietern
- Verwenden Sie die Cloud Vision API von Google, um hochgeladene Bilder zu analysieren und zu taggen.
- Nachrichten mit Google Übersetzer übersetzen lassen.
- Verwenden Sie die benutzerdefinierte Authentifizierung, um Nutzer anzumelden.
- Senden Sie für Realtime Database-Schreibvorgänge eine Anfrage an einen Webhook.
- Aktivieren Sie die Volltextsuche für Realtime Database-Elemente.
- Zahlungen von Nutzern verarbeiten.
- Sie können automatische Antworten auf Anrufe und SMS erstellen.
- Erstellen Sie einen Chatbot mit Google Assistant.