Skip to main content
GullySystem
A practical guide

When Firebase is enough for a business app and when it is not

Ganesh HSStrategy and Technology, GullySystem
Practical advice · 4 min read

In this guide 6 sections
The short answer

Firebase is enough for chat, field data capture, prototypes and apps with simple lookups. It strains when you need joins, reports across records, invoices with exact totals or an audit trail. Decide by the questions you will ask your data in year two, and check how you would export it.

What Firebase does well

Firebase bundles sign-in, a document database called Firestore, file storage and small server functions. A small team can have a working app in days, with no server to patch. Setup is quick.

Live updates are the standout. A dispatcher sees a driver’s status change without refreshing, and a chat thread, a checklist ticked on site or a job card photo all suit this model.

Offline sync is built into the mobile kits, so a technician in a basement plant room can fill a form and let it upload later when signal returns. No retry code is needed.

  • Sign-in with phone, email or Google accounts
  • Firestore for live, document-shaped records
  • Cloud Storage for photos and PDFs
  • Cloud Functions for small tasks such as a notification

Where it starts to hurt

Firestore stores documents, not tables. It does not join one collection to another. Asking for every unpaid invoice with its customer, its branch and its salesperson means several reads and code to stitch them together.

Reports are the next squeeze. A month-end sales summary by product and region is one line of SQL in a relational database. In Firestore it becomes a counting function that runs as each record arrives, or an export to another tool, and that function needs its own tests and upkeep.

Money is the third. Invoices need exact totals, sequence numbers without gaps and no double posting, and Firestore can do transactions, but you must design for them carefully from the first screen.

  • Reports that cut across many record types
  • Invoice and receipt numbering
  • Stock and ledger balances
  • Ad hoc questions from finance

Audit trails and permissions

Security rules in Firebase decide who may read or write a document. They are powerful and easy to get wrong, and one missing rule on a single collection can expose every customer record to any signed-in user.

An audit trail asks who changed what, when and from which value. Firebase keeps none of that by default. You write it yourself for every collection, then lock the log so nobody can edit an entry afterwards.

Regulated work, such as healthcare, payroll or anything audited, usually wants that history from day one. A payroll run that cannot show who approved a rate change will struggle at its first external review.

Exit cost and getting your data out

Ask the exit question before you start. You can export Firestore data to files in Google Cloud, but the shape is documents inside collections. Moving to MySQL or PostgreSQL means designing tables and writing a conversion script that reshapes every nested document, so budget time to test it.

Your sign-in users matter too. Password hashes can be exported, yet the process needs care, a test run and a planned cutover weekend.

The more business logic sits in security rules and functions, the more you rewrite later, so keep that logic in code you own where you can.

  • A tested export of every collection
  • User accounts and how they would move
  • Functions and rules documented in plain words
  • Billing alerts, since usage drives the bill

A simple way to choose

Write down ten questions you expect to ask the system in two years. Then sort them. If most are lookups of one record, Firebase fits. If several are totals, comparisons or reconciliations, lean relational.

A mixed design is common. Firebase handles live chat or field capture, while a relational database holds invoices and reports. The two sync through an API.

Your next step is to list those ten questions, mark each as a lookup or a report, and bring the marked sheet to whoever approves the budget.

Backend choice worksheet

Ten future questions run down the left of a single sheet, each marked lookup, report or reconciliation. Beside them sit rows for live updates, offline use, audit trail, invoice numbering and export plan, each scored for Firebase and for a relational database. A final box records the choice and the reason.

Open a blank worksheet to print

Questions owners ask

Is Firebase good for a prototype?

Yes. It is quick to start and cheap to test an idea. Keep the data model simple and write down what you would change if the prototype becomes the real product.

Can we move off Firebase later?

Yes, but it is a project. Data exports are possible, and the work lies in reshaping documents into tables, rebuilding rules and functions, and retesting every report that reads from them.

Does Firebase work for invoicing?

It can with careful transactions, but gapless numbering and exact totals are easier in a relational database, so many teams keep invoices there and use Firebase for live features.

Who owns the data in Firebase?

You do, as the project owner. Check the Google Cloud terms, region settings and who holds admin access to the project.

Browse all guidesBack to top ↑
Next step

Have a specific situation to work through?

This article covers the general case. Tell us what you’re actually dealing with and we’ll respond directly.

Share Your Requirements