Node.js 20 in Cloud Functions for Firebase außer Betrieb: zu 24 oder 22 wechseln
Am 30. Oktober 2026 wurde die Laufzeit Node.js 20 für Cloud Functions außer Betrieb genommen (decommission). Funktionen lassen sich mit Node.js 20 weder neu bereitstellen noch aktualisieren, deshalb bricht firebase deploy mit dem Fehler unten ab. Zu ändern ist eine einzige Zeile in functions/package.json. Haben Sie nur Funktionen der 2. Generation, wechseln Sie zu Node.js 24; haben Sie Funktionen der 1. Generation, zu Node.js 22.
Error: Runtime Node.js 20 was decommissioned on 2026-10-30. To deploy you must
first upgrade your runtime version.Kurz gesagt
- Es geht nicht nur um Bereitstellungen. Schon bereitgestellte Funktionen laufen noch, bekommen aber keine Sicherheitspatches mehr und können ohne festes Datum deaktiviert werden. Termine und ihre Bedeutung
- Ändern Sie eine Zeile und stellen Sie neu bereit. Setzen Sie
engines.nodeauf"24"oder"22". Enthältfirebase.jsonden Eintragruntime, hat dieser Wert Vorrang. So gehen Sie vor - 24 für die 2. Generation, 22 für die 1. Generation. Node.js 22 ist die letzte Laufzeit für Funktionen der 1. Generation, also müssen sie vor dem Ende von Node.js 22 am 31. Oktober 2027 auf die 2. Generation umgestellt werden. Funktionen der 1. Generation
- Wenn Sie die SDKs aktualisieren, prüfen Sie zwei Dinge.
firebase-functions7 hatfunctions.config()entfernt, undfirebase-admin14 läuft nur auf Node.js 22 oder höher. SDK-Versionen
Termine und ihre Bedeutung
Das ist der Zeitplan für die Laufzeitunterstützung von Google Cloud. Im Einstellungszeitraum (deprecation) können Sie noch bereitstellen; nach der Außerbetriebnahme (decommission) können Sie mit dieser Laufzeit weder neue Funktionen erstellen noch bestehende aktualisieren.
| Laufzeit | Nutzbar für | Einstellung | Außerbetriebnahme |
|---|---|---|---|
| Node.js 18 | 1. Generation, 2. Generation | 2025-04-30 | 2025-10-30 |
| Node.js 20 | 1. Generation, 2. Generation | 2026-04-30 | 2026-10-30 |
| Node.js 22 | 1. Generation, 2. Generation | 2027-04-30 | 2027-10-31 |
| Node.js 24 | Nur 2. Generation | 2028-04-30 | 2028-10-31 |
Das ändert sich mit der Außerbetriebnahme.
| Im Einstellungszeitraum | Nach der Außerbetriebnahme | |
|---|---|---|
| Neu bereitstellen oder aktualisieren | Ja | Nein |
| Bereits bereitgestellte Funktionen | Laufen | Laufen, können aber deaktiviert werden |
| Sicherheitspatches für Node.js und Betriebssystem | Ja | Keine |
Ein Datum für die Deaktivierung nennt die Richtlinie nicht. Selbst eine Funktion, die heute einwandfrei läuft, lässt sich nicht mehr bereitstellen, sobald Sie einen Fehler beheben müssen, und wann sie stoppt, wissen Sie nicht. Einen Ausweg gibt es auch nicht: Schalten Sie die Laufzeitprüfung der CLI ab, blockiert der Server die Bereitstellung trotzdem von sich aus (CLI-Quellcode).
Auf Node.js 24 oder 22 umstellen
- Prüfen Sie Generation und Laufzeit jeder Funktion. Führen Sie
firebase functions:listaus. In der Spalte Version stehtv1für die 1. Generation undv2für die 2. Generation; die Spalte Runtime zeigt die aktuelle Laufzeit. - Wählen Sie eine Version. Die Laufzeit gilt pro Codebasis (meist der Ordner
functions), nicht pro Funktion. Ist auch nur eine Funktion der 1. Generation dabei, wählen Sie 22; sind alle der 2. Generation, wählen Sie 24. Node.js 24 ist bis zum 31. Oktober 2028 nutzbar, unterstützt aber die 1. Generation nicht. In der Versionsliste der Firebase-Dokumentation fehlt 24 noch, doch der Zeitplan von Cloud führt es für die 2. Generation, und die Firebase CLI unterstützt es ab Version 14.26.0. - Ändern Sie eine Zeile in
package.json. Der Wert ist eine einzelne Hauptversionsnummer. Bei einem Bereich wie>=22oder22.xbricht die CLI mit dem FehlerDetected node engine ... which is not a supported versionab.{ "engines": { "node": "24" } }Enthält
firebase.jsonden Eintragruntime, verwendet die CLI zuerst diesen Wert. Ändern Sie ihn dann dort.{ "functions": { "source": "functions", "runtime": "nodejs24" } } - Verwenden Sie lokal und in der CI dieselbe Node.js-Version. Der Emulator führt Ihre Funktionen mit dem installierten Node.js aus. Weichen die Versionen ab, gibt er nur die Warnung
Your requested "node" version "24" doesn't match your global version "20"aus und führt sie trotzdem mit 20 aus, sodass Ihre Tests auf einer anderen Version laufen als die Produktion. - Stellen Sie bereit. Führen Sie
firebase deploy --only functionsaus und prüfen Sie, ob die Spalte Runtime vonfirebase functions:listjetztnodejs24(odernodejs22) zeigt.
SDK-Versionen
Wenn Sie mit Node.js auch die SDKs aktualisieren, prüfen Sie Folgendes.
| Paket | Was zu prüfen ist |
|---|---|
firebase-tools (CLI) | Kann nodejs22 ab 13.11.0 und nodejs24 ab 14.26.0 bereitstellen. |
firebase-functions | Unter 6.2.0 funktioniert ESM-Code mit await auf oberster Ebene ab Node.js 22.12 nicht mehr. Version 7.0.0 hat functions.config() entfernt; ein Aufruf führt zu einem Laufzeitfehler. |
firebase-admin | Version 14 läuft nur auf Node.js 22 oder höher und muss zusammen mit firebase-functions 7.3.0 oder höher verwendet werden (Peer-Abhängigkeit). Version 13 läuft auf Node.js 18 oder höher. |
Wenn Sie noch functions.config() verwenden, lassen Sie firebase-functions auf 6.x und ändern Sie nur Node.js. Bereitstellungen mit functions.config() schlagen nach März 2027 ebenfalls fehl, wechseln Sie also vorher zu Umgebungsvariablen oder Secret Manager.
Funktionen der 1. Generation
Die letzte Laufzeit, die Funktionen der 1. Generation nutzen können, ist Node.js 22, und sie wird am 31. Oktober 2027 außer Betrieb genommen. Bis dahin müssen diese Funktionen auf die 2. Generation umgestellt sein. Die Warnungen der Firebase CLI 15.35.0 nennen 2028-10-31 als Datum der Außerbetriebnahme von Node.js 22, maßgeblich ist aber das Datum im Zeitplan von Google Cloud, 2027-10-31 (CLI-Quellcode). Unter demselben Namen lässt sich eine Funktion nicht direkt umstellen, deshalb empfiehlt Firebase, die Funktion der 2. Generation unter einem neuen Namen bereitzustellen, den Traffic dorthin zu migrieren und dann die Funktion der 1. Generation zu löschen (Upgrade-Anleitung). Darauf sollten Sie beim Umstellen achten.
- URLs ändern sich. Bei HTTP-, aufrufbaren und Aufgabenwarteschlangen-Funktionen ist ein neuer Name eine neue URL. Stellen Sie Ihre Apps und Webhooks auf die neue URL um und löschen Sie dann die alte Funktion mit
firebase functions:delete. - Ereignisse werden doppelt verarbeitet. Solange beide Funktionen existieren, lösen Ereignistrigger wie die von Firestore oder Storage für dasselbe Ereignis beide aus. Sorgen Sie dafür, dass zwei Durchläufe dasselbe Ergebnis liefern.
- Manches fehlt. Die 2. Generation hat kein
functions.config()und keine Analytics-Ereignistrigger, und die Authentication-Trigger für das Anlegen und Löschen von Nutzern (onUserCreated,onUserDeleted) sind noch in der Preview-Phase. - Die Standardwerte sind anders. Eine Instanz verarbeitet standardmäßig bis zu 80 Anfragen gleichzeitig, und das Standarddienstkonto wird zum Compute Engine-Standarddienstkonto. Wenn Sie anfragespezifische Werte in globalen Variablen speichern oder dem App Engine-Standarddienstkonto IAM-Berechtigungen erteilt haben, müssen Sie das korrigieren.
Erweiterungen (Extensions)
Installierte Erweiterungen laufen ebenfalls auf Cloud Functions, und welche Laufzeit sie nutzen, hängt von der Version der Erweiterung ab. Firebase empfiehlt, Erweiterungen auf die neueste Version zu aktualisieren.
firebase ext:update <instance-id>
firebase deploy --only extensionsDer Firebase Extensions-Dienst wird am 31. März 2027 eingestellt. Installierte Erweiterungen laufen danach weiter, lassen sich dann aber nicht mehr verwalten, also zum Beispiel nicht mehr aktualisieren. Die meisten basieren auf Funktionen der 1. Generation und können daher stoppen oder deaktiviert werden, sobald ihre Laufzeit außer Betrieb genommen wird. Wenn Sie weiter brauchen, was eine Erweiterung tut, planen Sie auch ein, es in eine eigene Funktion zu übernehmen.
Quellen
- Zeitplan für die Laufzeitunterstützung, Versionshinweise zu Cloud Functions: Termine, Bedeutung von Einstellung und Außerbetriebnahme, Unterstützung von Node.js 22 in der 1. Generation und von Node.js 24 in der 2. Generation
- Funktionen verwalten (Node.js-Version festlegen), FAQ zu Cloud Functions:
enginesundruntime, Laufzeit von Erweiterungen - Quellcode der Firebase CLI 15.35.0: Laufzeitprüfung und Fehlermeldung, Termine der Laufzeiten, Lesen von
engines, Node.js-Auswahl des Emulators, serverseitige Prüfungen - Versionshinweise zu firebase-tools, firebase-functions und firebase-admin 14.0.0, Umgebungskonfiguration
- Upgrade von der 1. auf die 2. Generation, Vergleich der Generationen, Authentication-Trigger, FAQ zu Erweiterungen, Referenz zu extension.yaml
