Skip to content

docs(firestore-bigquery-export): first-time setup and accuracy fixes for the kit README - #3216

Merged
CorieW merged 23 commits into
kitsfrom
docs/kits-fbe-readme-first-time-setup
Sep 28, 2026
Merged

CorieW merged 23 commits into
kitsfrom
docs/kits-fbe-readme-first-time-setup

Conversation

@CorieW

@CorieW CorieW commented Sep 24, 2026

Copy link
Copy Markdown
Member

Changes

  • Add "Before you start" and install steps (@next tag, guided installer, direct firebase-functions/firebase-admin deps)
  • Show a working project layout, package.json, tsconfig.json and firebase.json with a build step
  • Add a "Check that it works" section and say which settings to set before the first deploy
  • Fix codebase naming: each instance id, not the kit name, is the codebase
  • Correct failure handling: failed inline inserts write the backup row; a failed onStart publish only warns
  • Correct EXT_SELECTED_EVENTS (unset publishes all), roles/datastore.user (always granted) and blank-value deploy failures
  • Correct the differences from the extension (region setting, FUNCTION_DEFAULT_REGION, defaults, ext:migrate global options)
  • Complete the API surface, add accepted values to the settings table, tidy placeholders and wording

Following the README as a first-time user left several steps to guess:

- add a "Before you start" section: Blaze project with Firestore,
  .firebaserc, Node.js 24, latest Firebase CLI with the kits experiment
- install from the `next` tag; `latest` is an empty 0.0.1 placeholder
- document the guided `firebase functions:kits:install` path and what to
  enter for FUNCTION_DEFAULT_REGION
- require firebase-functions and firebase-admin as direct dependencies;
  the kit's shrinkwrap nests its copies, so deploy fails without them
- show one project layout that matches the firebase.json stanza, with
  package.json fields, a tsconfig and a predeploy build step
- say the package ships no firebase.json and explain the `kit` field
- note the role-confirmation and container-image prompts on deploy
- explain that deploy prompts for every unset setting and saves the
  answers to .env.<projectId>
- list what the manual enqueue snippets need (firebase-admin, ADC,
  GOOGLE_CLOUD_PROJECT, gcloud)
…ension

Checked against extension 0.3.3 (source and a live install) and the
deployed kit:

- the extension's region came from the platform's Cloud Functions
  location setting, not a `LOCATION` param (removed in 2023)
- FUNCTION_DEFAULT_REGION is read: the ext:migrate and kits:install
  entry files pass it to setGlobalOptions, and it places the functions
  when DATABASE_REGION is empty
- drop the "Defaults" subsection: the extension already defaults
  DATASET_LOCATION to `us` and BIGQUERY_PROJECT_ID to the project
- note IMPORT_COLLECTION_PATH was removed from the extension too
- note that ext:migrate carries the instance's memory, timeout, ingress
  and instance limits into setGlobalOptions
…review

Corrections, each checked against the kit, change tracker and CLI code:

- create firebase.json before `firebase use --add`, which fails without it
- each instance id, not the kit name, is the codebase: fix the deploy
  output example and the `lifecycle:run <codebase>` argument
- a failed onStart publish only logs a warning; it no longer fails the
  execution as it did in the extension
- a failed inline insert already writes the backup row, so an event whose
  enqueue fails is not retried but is not necessarily lost
- roles/datastore.user is always granted
- unset EXT_SELECTED_EVENTS publishes every event; only a blank value
  publishes none
- settings marked "not required" fail the deploy when present but blank
- complete the API surface list and correct when config is read
- installer writes .env.<project-id>, not .env

Clarity:

- define codebase, kit and instance; add a "Check that it works" step
- say which settings to set before the first deploy
- give accepted values for partitioning, clustering, transform, CMEK and
  materialized-view settings; drop the internal "Field" column
- move the enqueue snippet's prerequisites before it and export
  FUNCTION_REGION and GOOGLE_CLOUD_PROJECT
- add the predeploy step to the multi-instance stanza
- consistent placeholders, CLI naming, dashes and code fences

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request significantly updates the README documentation for the Firestore BigQuery Export kit, detailing the new installation, configuration, and deployment processes using the Firebase CLI kits experiment. The review feedback points out a few technical inaccuracies in the documentation: the firebase functions:log command is incorrectly shown with an unsupported --only flag, the codebase directory path for the guided installer is incorrectly described as having a nested source subdirectory, and a BigQuery placeholder uses an invalid hyphen instead of an underscore.

Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md Outdated
@CorieW
CorieW marked this pull request as draft September 24, 2026 15:45
Cut the README from ~6,300 to ~1,900 words, in line with the other kits:
merge setup into Install, fold package.json/tsconfig into the layout,
shorten Provisioning, Failure handling, Migrating and Differences to
their actionable points, and drop the quota, 429 and CLI discovery
walkthroughs. All settings and corrections from the earlier commits are
kept.
Drop the pre-release note about the next tag and install the package without a tag.

@cabljac cabljac left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work on this, the first-time setup flow is much easier to follow and a lot of the corrections (datastore.user, EXT_SELECTED_EVENTS blank vs unset, backup on inline failure) look right to me.

Heads up that this was an AI-led review, which I've read through and trimmed, so please double-check each inline comment rather than taking it as fact, you may know a path it missed. The two I'd look at first are the manual enqueue recipe and the maxInstances cap from the 15.30.x installer template.

One more thing: the CHANGELOG entry for maxInstances: 500 says "the README describes the deploy failure a smaller quota produces and how to recover", but I think this PR removes that section (the functions:lifecycle:run afterFirstDeploy recovery). Since the CHANGELOG becomes the next RC's release notes, could you either keep a short version of it or update that line?

Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md
Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md Outdated
Comment thread kits/firestore-bigquery-export/README.md
…directory

Drop the firebase.json workaround and firebase use step.
@CorieW
CorieW marked this pull request as ready for review September 28, 2026 16:41
@CorieW
CorieW merged commit 9e28943 into kits Sep 28, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants