From bf02744c9a902c8ca3507cd75c2753b4d4eb1799 Mon Sep 17 00:00:00 2001 From: Lahiru Maramba Date: Tue, 12 May 2026 14:51:39 -0400 Subject: [PATCH 1/4] chore: drop support for Node.js 18 and 20 --- .github/workflows/ci.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/release.yml | 4 ++-- README.md | 3 +-- package.json | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36bf48432f..c94c719751 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x, 22.x, 24.x] + node-version: [22.x, 24.x] steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 8f4e36bbfb..6c4bf4da93 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -36,7 +36,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 18.x + node-version: 22.x - name: Install and build run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 88bf8a28ba..0664d18af7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,7 +51,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 18.x + node-version: 22.x - name: Install and build run: | @@ -122,7 +122,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 18.x + node-version: 22.x - name: Publish preflight check id: preflight diff --git a/README.md b/README.md index 73c5fe9a21..bb8905d932 100644 --- a/README.md +++ b/README.md @@ -59,8 +59,7 @@ requests, code review feedback, and also pull requests. ## Supported Environments -We currently support Node.js 18 and higher, but support for Node.js 18 and Node.js 20 is deprecated. We strongly encourage -you to use Node.js 22 or higher as we will drop support for Node.js 18 and Node.js 20 in the next major version. +We currently support Node.js 22 and higher. Please also note that the Admin SDK should only be used in server-side/back-end environments controlled by the app developer. diff --git a/package.json b/package.json index b88901e6e2..e86f53c1ae 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "Apache-2.0", "homepage": "https://firebase.google.com/", "engines": { - "node": ">=18" + "node": ">=22" }, "scripts": { "build": "gulp build", From 116e31fe5be5286b0ffabbc9d87158801ac46d25 Mon Sep 17 00:00:00 2001 From: Lahiru Maramba Date: Tue, 12 May 2026 15:00:23 -0400 Subject: [PATCH 2/4] Added Node.js 26.x to CIs --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c94c719751..85aabaa572 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - node-version: [22.x, 24.x] + node-version: [22.x, 24.x, 26.x] steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 From ab9b7071f095b54643585d24b19d7900053394a1 Mon Sep 17 00:00:00 2001 From: Lahiru Maramba Date: Tue, 12 May 2026 15:11:27 -0400 Subject: [PATCH 3/4] chore: upgrade firebase-tools to 15.17.0 in CI workflows --- .github/workflows/ci.yml | 2 +- .github/workflows/nightly.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85aabaa572..973ad2d32c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,6 @@ jobs: run: npm run api-extractor - name: Run emulator-based integration tests run: | - npm install -g firebase-tools@11.30.0 + npm install -g firebase-tools@15.17.0 firebase emulators:exec --project fake-project-id --only auth,database,firestore \ 'npx mocha test/integration/auth.spec.ts test/integration/database.spec.ts test/integration/firestore.spec.ts --slow 5000 --timeout 20000 --require ts-node/register' diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 6c4bf4da93..4831aa8dc5 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -52,7 +52,7 @@ jobs: - name: Run emulator-based integration tests run: | - npm install -g firebase-tools@11.30.0 + npm install -g firebase-tools@15.17.0 firebase emulators:exec --project fake-project-id --only auth,database,firestore \ 'npx mocha test/integration/auth.spec.ts test/integration/database.spec.ts test/integration/firestore.spec.ts --slow 5000 --timeout 20000 --require ts-node/register' From fb6c7e05b184d37cfaa33a58434d594ee4c3bdaf Mon Sep 17 00:00:00 2001 From: Lahiru Maramba Date: Wed, 13 May 2026 09:23:01 -0400 Subject: [PATCH 4/4] ci: setup Java 21 for emulator-based integration tests --- .github/workflows/ci.yml | 6 ++++++ .github/workflows/nightly.yml | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 973ad2d32c..392a035606 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,12 @@ jobs: uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: ${{ matrix.node-version }} + # Java 21 is required by firebase-tools to run emulator-based integration tests + - name: Set up Java + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 + with: + distribution: 'temurin' + java-version: '21' - name: Install and build run: | npm ci diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 4831aa8dc5..031f36e27d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -38,6 +38,13 @@ jobs: with: node-version: 22.x + # Java 21 is required by firebase-tools to run emulator-based integration tests + - name: Set up Java + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 + with: + distribution: 'temurin' + java-version: '21' + - name: Install and build run: | npm ci