Skip to content

docs: refresh quickstart and README for current ng add and deploy paths - #3736

Open
armando-navarro wants to merge 1 commit into
angular:mainfrom
armando-navarro:docs-quickstart-refresh
Open

docs: refresh quickstart and README for current ng add and deploy paths#3736
armando-navarro wants to merge 1 commit into
angular:mainfrom
armando-navarro:docs-quickstart-refresh

Conversation

@armando-navarro

Copy link
Copy Markdown
Collaborator

Checklist

Description

Refreshes the Quickstart (docs/install-and-setup.md) and the README so they match how a current Angular app is created and how ng add @angular/fire behaves today.

  • Rewrite step 2 to what ng add actually does (writes provideFirebaseApp(...) into the app configuration with the config inlined, no environment files).
  • Fix the scaffold file and class names in steps 3 and 4 (app.ts and class App, templateUrl/styleUrl), and type the Firestore binding with an Item interface.
  • Replace the broken ng deploy step with guidance for both paths: Firebase Hosting for client-rendered apps, and Firebase App Hosting for server-rendered apps.
  • Add a "Before you begin" section covering the @next requirement on the newest Angular major, the Firebase CLI, and the harmless setup prompts.
  • README: fix the "Example use" snippet, drop the removed single-command deploy bullet, remove the outdated "developer preview" note, alphabetize the product-integrations table, and make the Stackblitz note template-agnostic.

Documentation only, no source or API changes.

Fixes#3735
Refs #3667

The quickstart described the pre-v7 ng add (environment files and
AngularFireModule) and told users to run ng deploy, which no longer
works on a fresh project. Correct step 2 to what ng add writes today
(provideFirebaseApp in the app config, no environment files), fix the
scaffold file and class names to app.ts and class App, type the
Firestore binding with an Item interface, and split step 6 into the
client-rendered path (Firebase Hosting) and the server-rendered path
(App Hosting).
Add a Before you begin section covering the @next requirement on the
newest Angular major, the Firebase CLI, and the harmless CLI prompts.
README: drop the obsolete single-command deploy bullet, remove the
developer-preview disclaimer, fix the appConfig example (brace and
missing imports), alphabetize the product-integrations table, and make
the Stackblitz note template-agnostic.
@armando-navarroarmando-navarro added comp: docs Documentation. type: chore Maintenance with no user-facing behavior change. labels Aug 4, 2026

@tyler-reitztyler-reitz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for cleaning this up. I checked the claims against the schematics source and they hold:

  • src/schematics/setup/index.ts uses addRootProvider to write provideFirebaseApp(() => initializeApp({...})) with the SDK config inlined, and creates no environment files, so the step 2 rewrite is accurate.
  • There is no deploy target wiring left in the setup schematic, so ng deploy really does have nothing to run on a fresh project. Dropping it is the right call.
  • The README table is still well formed after the reorder (rows stay paired) and is correctly alphabetized.
  • docs/app-hosting.md exists, so the new link resolves.

Three things before I approve:

  1. docs/deploy/getting-started.md now contradicts this PR. It still says ng add will "update your workspace file (angular.json) by inserting the deploy builder" and walks the reader through ng deploy, which is exactly what this PR removes as broken. Nothing in the repo links to it, but it is still findable via search and would send a user right back into the dead end. Could you delete it here, or add a note at the top pointing at the new step 6?

  2. The @angular/fire:deploy builder still ships in src/schematics/builders.json. This PR removes every mention of it rather than saying it is still available but now needs the target wired manually. That reads like a product decision more than a docs one, so I want to check it is intentional. If we are keeping the builder, a sentence in step 6 acknowledging it would avoid the impression it was removed.

  3. "Before you begin" should mention the firebase-tools minimum version.src/schematics/firebaseTools.ts requires 14.0.0 and hard fails with "please upgrade and run again" on anything older. Since that section already suggests installing the CLI ahead of time, someone with a stale global install hits precisely the dead end the section exists to prevent. Suggest npm install -g firebase-tools@latest plus a note about the 14+ requirement.

Nit, non blocking: the step 3 snippet declares imports: [AsyncPipe] but does not use it. It is preexisting and step 4 does use it, so fine to leave as is.

@tyler-reitztyler-reitz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approving. Everything here is strictly more accurate than what is on main today, and it is docs only, so no reason to hold it.

To be clear about my earlier review: all three points are non-blocking and fine as follow-ups. Point 2 (the @angular/fire:deploy builder is still registered in src/schematics/builders.json even though this PR drops every mention of it) is a question rather than a change request. If dropping it is intentional deprecation, no action needed here.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: docsDocumentation.type: choreMaintenance with no user-facing behavior change.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: the quickstart and README are out of date for the current setup and deploy flow

2 participants

@armando-navarro@tyler-reitz