Install
npx skillscat add firebase/firebase-tools/update-pub-sub-emulator Install via the SkillsCat registry.
Update Pub/Sub Emulator
Update Local Emulator
Run the following command to make sure you have the latest version of the pubsub emulator installed via gcloud:gcloud components update pubsub-emulatorLocate Emulator Directory
The emulator represents a directory likely located at<gcloud-install-path>/platform/pubsub-emulator.
You can find the exact path by running the emulator and checking the output, or by inspecting wheregcloudis installed (e.g.which gcloudusually points to a bin directory, and the platform directory is a sibling ofbin).
Verify the version by running the emulator or checking theVERSIONfile if it exists.Package the Emulator
Zip the directory found in the previous step. Name itpubsub-emulator-<version>.zip.
Ensure the zip structure is such that the top-level directory inside the zip ispubsub-emulator.
Note: The existing code expects the binary atpubsub-emulator-<version>/pubsub-emulator/bin/cloud-pubsub-emulatorinside the cache, which usually means the zip contains a root folderpubsub-emulator.Upload to Storage
Upload the zip file to the Firebase preview bucket:gsutil cp pubsub-emulator-<version>.zip gs://firebase-preview-drop/emulator/Make the file publicly readable if necessary (usually the bucket permissions handle this, or use
gsutil acl ch -u AllUsers:R ...).Note: For the version 0.8.27 update, this step was already done.
Calculate Metadata
Calculate the file size in bytes, MD5 checksum, and SHA256 checksum of the zip file.# Size ls -l pubsub-emulator-<version>.zip # MD5 (macOS: `md5`, Linux: `md5sum`) md5 pubsub-emulator-<version>.zip # SHA256 (macOS: `shasum -a 256`, Linux: `sha256sum`) shasum -a 256 pubsub-emulator-<version>.zipUpdate Configuration
Editsrc/emulator/downloadableEmulatorInfo.json:- Update
pubsub.versionto the new version. - Update
pubsub.expectedSize. - Update
pubsub.expectedChecksum(MD5). - Update
pubsub.expectedChecksumSHA256. - Update
pubsub.remoteUrlandpubsub.downloadPathRelativeToCacheDir.
- Update
Verify
Run the emulators to ensure the new version is downloaded and starts correctly.firebase emulators:start --only pubsubAdd a Changelog Entry
Add a changelog entry toCHANGELOG.mdlike '- Updated Pub/Sub emulator to version '