Building My Second Project with Firebase Studio: Lessons Learned

Building My Second Project with Firebase Studio: Lessons Learned

When I started my second project with Firebase Studio, I thought the experience would be smoother than the first. After all, I already knew where I’d struggled the first time. But this round taught me something even more valuable: Firebase Studio is powerful, but it doesn’t always understand what you want — unless you guide it carefully.

Here’s a look at my journey, the challenges I faced, and how I learned to work with Studio more effectively.


1. Where Firebase Studio Misunderstands Context

One of the biggest problems I had was that Firebase Studio doesn’t actually “understand Firebase” in the way you’d expect.

  • It sometimes guessed the wrong structure for Firestore documents.
  • It misapplied authentication rules.
  • It tried to generate config files (firebase.json, firestore.rules) that didn’t match my project setup.

Bad Prompt Example (what didn’t work):

“Add Firestore rules for my app.”

What Studio Output:

// way too generic, overly permissive
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}

Better Prompt Example (what worked):

“Write Firestore security rules for a collection called competitions. Only the document owner (userId field must match request.auth.uid) can create, update, or delete. Anyone can read.”

2. My Workaround: Spoon-Feeding Context

I learned that Studio needs step-by-step prompts, almost like teaching a junior developer. The trick was not to say “fix this”, but instead to spell out:

  • The purpose of the code (e.g. “keep header, main content, and footer aligned in a flex column layout that stretches full height”).
  • The exact constraints (e.g. “footer should stick to the bottom, content should expand to fill remaining space”).

Bad Prompt Example:

“Fix my layout so the footer stays at the bottom.”

Better Prompt Example:

“I need a flex-col layout where:The header stays fixed at the topThe footer sticks to the bottomThe main content stretches to fill the remaining space.
Please rewrite my body, main, and footer divs with Tailwind classes to achieve this.”

3. Don’t Assume Studio Knows Firebase

The second project taught me that Studio doesn’t automatically connect the dots with Firebase’s ecosystem.

  • When I asked for database schema help, it suggested SQL-like tables instead of Firestore collections.
  • When I wanted authentication with email/password, it wrote generic code but left out Firebase’s getAuth setup.
  • When I needed hosting setup, it didn’t structure the firebase.json correctly without me pasting examples.

Bad Prompt Example:

“Set up Firebase auth.”

What Studio Output:

// incomplete, missing imports and context
signIn(email, password
) {
firebase.auth().signInWithEmailAndPassword(email, password);
}

Better Prompt Example:

“I’m using Firebase Authentication with email and password. Generate React code that uses firebase/auth with getAuth, createUserWithEmailAndPassword, and signInWithEmailAndPassword. Wrap it inside a context provider so I can use useAuth() throughout the app. Include error handling.”

4. Evolution from Project One to Project Two

The first time I used Firebase Studio, I was frustrated because I expected it to behave like a Firebase expert. It’s not.

In the second project, I changed my approach:

  • I used ChatGPT as a translator — first refining my intent here, then pasting the clarified prompts into Firebase Studio.
  • I treated Studio like a “code generator” that needs strict boundaries.
  • I kept testing outputs immediately instead of assuming they’d work.

The result? Far fewer dead-ends, and a faster overall build.


Conclusion: How to Get the Best from Firebase Studio

If you’re using Firebase Studio, here’s what I’d recommend:

  1. Don’t assume it knows Firebase deeply — provide explicit instructions.
  2. Break down prompts into goals, context, and constraints.
  3. Validate output immediately — errors usually mean the prompt wasn’t specific enough.
  4. Use ChatGPT (or another AI) as a middleware to refine your prompts before giving them to Studio.

Firebase Studio is a powerful tool, but it’s not a mind-reader. The more you train yourself to guide it clearly, the more effective your projects will be.