<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/tips-tricks-for-firebase-hosting-yzju4mnz0" -->

---
title: Tips &amp; Tricks for Firebase Hosting | daily.dev
description: Six months after launching Firebase Hosting, the team shares practical tips gathered from developer feedback: setting up separate Firebase projects for dev,...
canonical: https://daily.dev/posts/tips-tricks-for-firebase-hosting-yzju4mnz0
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Tips &amp; Tricks for Firebase Hosting | daily.dev
og:description: Six months after launching Firebase Hosting, the team shares practical tips gathered from developer feedback: setting up separate Firebase projects for dev,...
og:url: https://daily.dev/posts/tips-tricks-for-firebase-hosting-yzju4mnz0
og:image: https://api.daily.dev/og/posts/yZju4mnZ0.png
og:image:alt: Tips &amp; Tricks for Firebase Hosting
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Tips & Tricks for Firebase Hosting

**[Firebase](https://daily.dev/sources/firebase-blog)** · 3 min read · 0 upvotes · 0 comments

## Summary

Six months after launching Firebase Hosting, the team shares practical tips gathered from developer feedback: setting up separate Firebase projects for dev, staging, and production environments, using paid plans only for custom domains, and running firebase-tools effectively in scripts and CI pipelines with flags like -s for silent mode, --email/--password overrides, and --firebase for targeting different environments. It also notes usage stats (nearly 6,000 sites, 100,000 deploys, 99.99% uptime) and teases upcoming features like user-generated content support and better SPA SEO.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://firebase.blog/posts/2014/11/tips-tricks-for-firebase-hosting>

## Questions this post answers

### How do I manage separate dev, staging, and production environments with Firebase Hosting?

Create a separate Firebase project for each environment, such as my-app-dev, my-app-staging, and my-app-prod. The Hacker Plan allows up to ten free Firebase projects, letting you test rewrite rules and redirects before touching production. Only Firebase projects using a custom domain require a paid plan; a deploy script can swap the project name to match the current environment.

_Teams juggling multiple deploy environments can track hosting and CI workflow tips like these on daily.dev._

### How can I run firebase-tools commands in a CI script without interactive prompts?

Use the -s (silent) flag with firebase-tools so it never prompts for missing information; instead it prints a message and exits with a non-zero error code. Commands also accept --email and --password to override credentials stored in .firebaserc, useful for bypassing the 30-day access token expiration, and these should be passed as environment variables rather than typed in the shell history.

_Developers wiring deploys into CI often compare CLI automation tricks like this on daily.dev._

## Similar posts on daily.dev

- [10 Useful Tools and Web Hosting Tricks Every Developer Should Know](https://daily.dev/posts/10-useful-tools-and-web-hosting-tricks-every-developer-should-know-qhldtfycu) · SitePoint · 0 upvotes · 0 comments
- [Using Flutter with Firebase: A Developer's Guide](https://daily.dev/posts/using-flutter-with-firebase-a-developer-s-guide-jbpavk3vl) · Flutter Community · 0 upvotes · 0 comments

---

Tags: [#cicd](https://daily.dev/tags/cicd), [#firebase](https://daily.dev/tags/firebase)

[View this post on daily.dev](https://daily.dev/posts/tips-tricks-for-firebase-hosting-yzju4mnz0)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Tips & Tricks for Firebase Hosting","url":"https://daily.dev/posts/tips-tricks-for-firebase-hosting-yzju4mnz0","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/tips-tricks-for-firebase-hosting-yzju4mnz0"},"datePublished":"2026-08-23T12:20:29.134Z","dateModified":"2026-08-23T12:33:26.824Z","description":"Six months after launching Firebase Hosting, the team shares practical tips gathered from developer feedback: setting up separate Firebase projects for dev,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7ed721de96163685d26ab7e314be3ebc?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7ed721de96163685d26ab7e314be3ebc?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Firebase","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Firebase","logo":"https://media.daily.dev/image/upload/s--i395oqZH--/f_auto,q_auto/v1787487448/logos/firebase-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/firebase-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/tips-tricks-for-firebase-hosting-yzju4mnz0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"cicd,firebase","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Firebase","item":"https://daily.dev/sources/firebase-blog"},{"@type":"ListItem","position":3,"name":"Tips & Tricks for Firebase Hosting"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/tips-tricks-for-firebase-hosting-yzju4mnz0#faq","mainEntity":[{"@type":"Question","name":"How do I manage separate dev, staging, and production environments with Firebase Hosting?","acceptedAnswer":{"@type":"Answer","text":"Create a separate Firebase project for each environment, such as my-app-dev, my-app-staging, and my-app-prod. The Hacker Plan allows up to ten free Firebase projects, letting you test rewrite rules and redirects before touching production. Only Firebase projects using a custom domain require a paid plan; a deploy script can swap the project name to match the current environment. Teams juggling multiple deploy environments can track hosting and CI workflow tips like these on daily.dev."}},{"@type":"Question","name":"How can I run firebase-tools commands in a CI script without interactive prompts?","acceptedAnswer":{"@type":"Answer","text":"Use the -s (silent) flag with firebase-tools so it never prompts for missing information; instead it prints a message and exits with a non-zero error code. Commands also accept --email and --password to override credentials stored in .firebaserc, useful for bypassing the 30-day access token expiration, and these should be passed as environment variables rather than typed in the shell history. Developers wiring deploys into CI often compare CLI automation tricks like this on daily.dev."}}]}
```

