
Teilen Sie:
Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.
Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.
Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.
Wie man SMS mit Firebase-Funktionen sendet und empfängt (Anleitung)
Lesedauer: 12 Minuten
Dieser Artikel wurde im Oktober 2025 aktualisiert.
Mit der Firebase-Plattform können Entwickler schnell ein Anwendungs-Backend erstellen. Außerdem ist sie sehr benutzerfreundlich. In diesem Tutorial wollte ich sie für einige SMS-Nachrichten mit Vonage. Im Folgenden zeige ich Ihnen, wie Sie mit Firebase SMS-Nachrichten empfangen und senden können. Nach Abschluss dieser Schritte können Sie ein SMS-Nachrichtenprotokoll und eine Antwort an den Absender erstellen, indem Sie Firebase Cloud-Funktionen und der Echtzeitdatenbank zusammen mit der Vonage SMS API zu erstellen.
Dieser Blogbeitrag verwendet Firebase Gen 1; Sie können auch lernen, SMS-Nachrichten mit Cloud-Funktionen für Firebase Gen 2 hier zu senden.
Sie können den vollständigen Code sehen auf GitHub.
Sie können diese Anleitung auch als Video finden:
Bevor Sie loslegen
Um loslegen zu können, benötigen Sie ein paar Dinge - nehmen Sie sich also einen Moment Zeit und stellen Sie sicher, dass Sie beides bereithalten.
Vonage API-Konto Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.
A Firebase Account.
Dieses Lernprogramm besteht aus drei Hauptabschnitten:
Zuerst zeigen wir dir, wie du Firebase für dein Projekt einrichtest.
Als Nächstes zeigen wir Ihnen, wie Sie eine Funktion zum Empfang von SMS-Nachrichten in Firebase erstellen können.
Zum Schluss werden wir uns damit beschäftigen, wie man eine Funktion erstellt, die SMS-Nachrichten in Firebase versendet.
Firebase einrichten
Der erste Schritt besteht darin, ein Firebase-Projekt einzurichten. Im Folgenden wird gezeigt, wie Sie ein neues Projekt über die Firebase-Konsole einrichten.
Erstellen Sie das Firebase-Projekt
Gehen Sie zur Firebase-Konsole
Klicken Sie auf Projekt hinzufügen, fügen Sie einen Projektnamen hinzu, und klicken Sie auf Weiter.
Create a Project
Wir werden Google Analytics nicht für dieses Projekt verwenden, aber Sie können es gerne hinzufügen, wenn es Ihnen gefällt, und dann auf Projekt erstellen klicken (falls hinzugefügt).
Add analytics
3. Warten Sie ein wenig, bis das Projekt erstellt ist - es dauert weniger als eine Minute.
4. Stellen Sie die Abrechnungsart ein unter ⚙️ -> Nutzung und Abrechnung -> Details & Einstellungen auf Blaze. Der Pay-as-you-go-Plan ist erforderlich, um eine Drittanbieter-API zu verwenden. Weitere Einzelheiten zur Abrechnung mit Google.
Change BillingSetzen Sie die
Google Cloud Platform (GCP) resource locationin⚙️ -> Project Settings.
Update Location
Firebase-Tools installieren
Fast alles, was Sie mit Firebase tun müssen, können Sie direkt von der Kommandozeile aus mit den von Firebase bereitgestellten Tools erledigen.
Installieren Sie die Firebase-Tools mit npm.
Melden Sie sich bei Firebase an mit
firebase login. Beim Anmeldevorgang wird Ihr Browser zur Authentifizierung geöffnet.
Lokale Umgebung einrichten
Das Schreiben von Cloud-Funktionen für Firebase erfordert einige Initialisierungsarbeiten, die jedoch größtenteils mit den Firebase Tools-Befehlen erledigt werden können.
Einen Projektordner erstellen
mkdir vonage-project && cd vonage-project.Initialisierung von Cloud-Funktionen für Firebase
firebase init functions.
######## #### ######## ######## ######## ### ###### ########
## ## ## ## ## ## ## ## ## ## ##
###### ## ######## ###### ######## ######### ###### ######
## ## ## ## ## ## ## ## ## ## ##
## #### ## ## ######## ######## ## ## ###### ########
You're about to initialize a Firebase project in this directory:
/your_folders/your-project-name
=== Project Setup
First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add,
but for now, we'll just set up a default project.
? Please select an option: (Use arrow keys)
❯ Use an existing project
Create a new project
Add Firebase to an existing Google Cloud Platform project
Don't set up a default projectDa Sie bereits ein Projekt im Dashboard erstellt haben, können Sie Use an existing project wählen, wodurch Sie aufgefordert werden, das gewünschte Projekt auszuwählen. Wenn Sie dies noch nicht getan haben, verwenden Sie Create a new project und geben Sie ihm einen eindeutigen Namen, um es zu erstellen. Sie müssten immer noch zur Konsole gehen, um den Speicherort und die Abrechnung zu aktualisieren, aber es ist eine weitere Möglichkeit, Firebase-Projekte zu erstellen.
Wählen Sie den von Ihnen erstellten Projektnamen.
Wählen Sie JavaScript.
Wählen Sie Y für ESLint, wenn Sie dies wünschen (ich empfehle es).
Installieren Sie jetzt alle Abhängigkeiten.
Mit diesen Schritten werden die für die Erstellung von Firebase-Funktionen erforderlichen Ordner und Dateien erstellt und alle Abhängigkeiten installiert. Sobald NPM fertig ist, wechseln Sie in das functions Verzeichnis und öffnen Sie index.js in Ihrem bevorzugten Editor, um mit dem Hinzufügen von Code zu beginnen.
Erstellen Sie eine Firebase-Funktion zum Empfangen von SMS-Nachrichten
Die erste Funktion, die Sie erstellen, wird als Webhook fungieren, um eingehende SMS-Nachrichten von Vonage zu erfassen und zu protokollieren. Diese Funktion ermöglicht es Ihnen, eingehende SMS-Textnachrichten über Firebase zu empfangen.
Die Datei index.js Datei ist ein Beispielcode enthalten, den Sie nicht benötigen. Löschen Sie alles und fangen Sie oben an, um den folgenden Code hinzuzufügen:
const functions = require("firebase-functions/v1");
const admin = require("firebase-admin");
const serviceAccount = require("./serviceAccountKey.json");
// Initialize Firebase app for database access
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://name_of_the_database.europe-west1.firebasedatabase.app",
});Der Aufruf von admin.initializeApp(); ermöglicht den Funktionen das Lesen und Schreiben in der Firebase Real-Time-Datenbank.
Sie müssen auch ein Service Account für Ihr Projekt erstellen und Ihre databaseURL die Sie auf der Registerkarte "Realtime Database" Ihres Firebase-Projekts finden können.
Verwenden Sie dann die folgende Methode, um Ihre Funktion zu erstellen.
// This function will serve as the webhook for incoming SMS messages,
// and will log the message into the Firebase Realtime Database
exports.inboundSMS = functions.https.onRequest(async (req, res) => {
let params;
if (Object.keys(req.query).length === 0) {
params = req.body;
} else {
params = req.query;
}
await admin.database().ref('/msgq').push(params);
res.sendStatus(200);
});Die inboundSMS Methode lauscht auf HTTPS-Anfragen - was genau das ist, was Vonage Webhook benötigt. Die Firebase-Funktion erfasst die req.body für den Fall, dass es sich um eine POST Method oder die req.query für den Fall, dass es sich um einen GET Method. Sie sendet es dann an das /msgq Objekt in der Echtzeitdatenbank als Protokoll.
Nachdem Sie den Code geschrieben haben, müssen Sie Ihre Datei speichern und die Funktion in Firebase bereitstellen:
firebase deploy --only functions
=== Deploying to 'vonage-project'...
i deploying functions
Running command: npm --prefix "$RESOURCE_DIR""
> functions@ lint /Users/kellyjandrews/Google Drive/Apps/vonage-project/functions
> eslint .
✔ functions: Finished running predeploy script.
i functions: ensuring necessary APIs are enabled...
✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (38.78 KB) for uploading
✔ functions: functions folder uploaded successfully
i functions: creating Node.js 18 function inboundSMS(us-central1)...
✔ functions[inboundSMS(us-central1)]: Successful create operation.
Function URL (inboundSMS): https://us-central1-vonage-project.cloudfunctions.net/inboundSMS
✔ Deploy complete!
Project Console: https://console.firebase.google.com/project/vonage-project/overviewDer entscheidende Teil der Ausgabe ist Function URL (inboundSMS). Diese URL wird benötigt, um den Webhook in Vonage einzurichten, was Sie als nächstes tun werden.
Vonage API-Konto
Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.
In diesem Lernprogramm wird auch eine virtuelle Telefonnummer verwendet. Um eine zu erwerben, gehen Sie zu Rufnummern > Rufnummern kaufen und suchen Sie nach einer Nummer, die Ihren Anforderungen entspricht.
Über die Vonage Dashboard-Einstellungenstellen Sie sicher, dass Sie die SMS APIwählen Sie post und kopieren Sie die URL der Ausgangsfunktion (eingehende SMS) von der Terminalkonsole und fügen Sie sie in den Webhook von Vonage ein.
Vonage Dashboard SettingsNehmen Sie Ihr Telefon und senden Sie eine Nachricht an die Telefonnummer. Öffnen Sie die Firebase-Konsole und navigieren Sie zur database Seite, und Sie sollten etwas Ähnliches wie das hier sehen:
Real-time Database Vonage Message Entry
Da es nun eine Möglichkeit gibt, eingehende Nachrichten zu protokollieren, können Sie eine Funktion schreiben, die etwas mit der eingehenden Nachricht macht.
Erstellen einer Firebase-Funktion zum Senden von SMS-Nachrichten
Bisher haben Sie eine Firebase-Funktion erstellt, die mit einer Vonage-Telefonnummer verknüpft ist, um eingehende SMS-Nachrichten zu erfassen. Firebase-Funktionen können auch auf Datenbankaktualisierungen reagieren. Bei einem neuen Eintrag sendet der Code ein Echo des ursprünglichen Textes.
Im Folgenden zeigen wir Ihnen, wie Sie eine Funktion in Firebase erstellen, die SMS-Textnachrichten versendet.
Beginnen Sie damit, Vonage in die Liste der Abhängigkeiten aufzunehmen - stellen Sie sicher, dass Sie dies im functions Verzeichnis:
Als nächstes fügen Sie dotenv zur Liste der Abhängigkeiten hinzu.
Erstellen Sie eine .env Datei und fügen Sie die Umgebungsvariablen im Verzeichnis functions Verzeichnis:
Sie können entweder dot env verwenden oder die folgenden Umgebungsvariablen zur Firebase-Konfiguration hinzufügen:
Öffnen Sie Ihre API-Einstellungen-Seite um auf Ihren Vonage API-Schlüssel und Ihr API-Geheimnis zuzugreifen, die beide wie im Screenshot unten dargestellt angezeigt werden. Der API-Schlüssel befindet sich oben auf der Seite, und um auf Ihr API-Geheimnis zuzugreifen, lesen Sie bitte den Unterabschnitt "Account secret".
Hinweis: Falls Sie sich nicht an Ihr zuvor erstelltes API-Geheimnis erinnern können, klicken Sie auf "+ Neues Geheimnis erstellen" und speichern Sie es sicher.

Öffnen Sie dann index.js hinzufügen. @vonage/server-sdk zu den Anforderungen oben und importieren Sie die Umgebungsvariablen, um Vonage zu initialisieren:
require("dotenv").config();
const functions = require("firebase-functions/v1");
const admin = require("firebase-admin");
const { Vonage } = require("@vonage/server-sdk");
const serviceAccount = require("./serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://name_of_the_database.region.firebasedatabase.app",
});
// If you are using .env
const vonage = new Vonage({
apiKey: process.env.VONAGE_API_KEY,
apiSecret: process.env.VONAGE_API_SECRET,
});
// If you are using the Firebase Environment Variables
const {
api_key,
api_secret
} = functions.config().vonage;Jetzt können Sie die neue Funktion für Firebase erstellen, um die Antwort zu senden:
// This function listens for updates to the Firebase Realtime Database
// and sends a message back to the original sender
exports.sendSMS = functions.database
.ref("/msgq/{pushId}")
.onCreate(async (message) => {
const { msisdn, text, to } = message.val();
const resultSnapshot = await message.ref.parent
.child("result")
.once("value");
if (resultSnapshot.exists()) {
console.log("Result already exists. Exiting function.");
return;
}
try {
const responseData = await vonage.sms.send({
to: to,
from: msisdn,
text: `You sent the following text: ${text}`,
});
if (responseData.messages && responseData.messages[0].status === "0") {
const result = `You sent the following text:
${responseData.messages[0]["message-id"]}`;
await message.ref.parent.child("result").set(result);
console.log(result);
return result;
} else {
const errorText =
(responseData.messages && responseData.messages[0]["error-text"]) ||
"Unknown error";
const errorMessage = `Message failed with error: ${errorText}`;
console.error(errorMessage);
return errorMessage;
}
} catch (err) {
console.error("Vonage error:", err);
return `Vonage error: ${err.message}`;
}
});Die neue Funktion sucht nach neuen Nachrichten, die dem /msgq Datenbank-Objekt hinzugefügt werden. Wenn sie ausgelöst wird, wird das vollständige Vonage-Objekt als message. Dieses Objekt enthält msisdndie Ursprungsrufnummer - in diesem Fall Ihre - und die to Nummer, die die von Ihnen erworbene virtuelle Vonage-Nummer ist.
Mit den Telefonnummern und der Textnachricht in der Hand können Sie nun eine Reihe von Maßnahmen ergreifen. Sie können eine Nachschlagetabelle erstellen, um auf der Grundlage des Schlüsselworts mit bestimmten Daten zu antworten, die Nachricht an ein anderes System weiterleiten oder, wie in unserem Fall, die ursprüngliche Nachricht senden.
Stellen Sie die Firebase-Funktionen erneut über die Befehlszeile bereit:
firebase deploy --only functionsGreifen Sie zu Ihrem Telefon, senden Sie eine weitere Nachricht, und Sie sollten eine Antwort erhalten, die etwa so aussieht You sent the following text: A text message sent using the Vonage SMS API.
Einpacken
Sie haben nun alle Schritte für dieses Lernprogramm abgeschlossen. Sie können den vollständigen Code auf GitHub.
Nachdem nun die ersten Schritte zum Senden und Empfangen von Nachrichten abgeschlossen sind, werde ich in den nächsten Beiträgen dieses Konzept auf die Steuerung einiger meiner Hausautomation über Textnachrichten erweitern.
Haben Sie eine Frage oder möchten Sie etwas mitteilen? Beteiligen Sie sich am Gespräch auf dem Vonage Community Slackund bleiben Sie auf dem Laufenden mit dem Entwickler-Newsletter, folgen Sie uns auf X (früher Twitter), abonnieren Sie unseren YouTube-Kanal für Video-Tutorials, und folgen Sie der Vonage Entwickler-Seite auf LinkedInein Raum für Entwickler, um zu lernen und sich mit der Community zu vernetzen. Bleiben Sie in Verbindung, teilen Sie Ihre Fortschritte und halten Sie sich über die neuesten Nachrichten, Tipps und Veranstaltungen für Entwickler auf dem Laufenden!
Weitere Lektüre
Teilen Sie:
Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.
Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.
Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.
