What are the limitations of using Firebase?

Firebase helps you concentrate on the core parts of your application without needing to develop your own backend. To an extend this is good. Firebase is a SaaS provided by google. You may end up in a “Service Trap” at some point of time. So build you application architecture in such a way that you can easily change the services that you are using. Do not build you application architecture for a specific service.

Building your own backend may be a tedious task for some people, but it has a lot of pros. You can design the backend as per your requirements. Firebase provides us asynchronous functio

Firebase helps you concentrate on the core parts of your application without needing to develop your own backend. To an extend this is good. Firebase is a SaaS provided by google. You may end up in a “Service Trap” at some point of time. So build you application architecture in such a way that you can easily change the services that you are using. Do not build you application architecture for a specific service.

Building your own backend may be a tedious task for some people, but it has a lot of pros. You can design the backend as per your requirements. Firebase provides us asynchronous functions/listeners for various tasks. But sometimes this asynchronous nature may bring up problems.

I have been using firebase when it was just launched. At first, I was very impressed with its speed and real time syncing capabilities.

What stopped me from using it for production is that it lacks a client tool to manage and manipulate the data, something like MySQL workbench for MySQL. You will need to write your own codes in order to query the data, and the query flexibility is quite limited. For example, it is not simple to apply a where condition with order by certain attributes.

Another limitation (or perhaps strength) is that the data structure is more towards horizontal. As a result, you

I have been using firebase when it was just launched. At first, I was very impressed with its speed and real time syncing capabilities.

What stopped me from using it for production is that it lacks a client tool to manage and manipulate the data, something like MySQL workbench for MySQL. You will need to write your own codes in order to query the data, and the query flexibility is quite limited. For example, it is not simple to apply a where condition with order by certain attributes.

Another limitation (or perhaps strength) is that the data structure is more towards horizontal. As a result, you will need to store duplicated data under separate nodes. While this is good when retrieving the data, maintaining it would be a nightmare when the database grows big.

Downsides of Firebase: limitations to be aware of

  • Limited support for iOS features. While advertised as a cross-platform solution, Firebase still focuses more on the Android devices
  • Unpredictable pricing
  • Real-time synchronization issues
  • Limited querying capabilities
  • Data migration problems
  • Vendor lock-in
  • Doesn't work in the countries that don't allow Google

Let’s know here some disadvantages of using Firebase:

  • Limited query abilities a result of Firebase’s data stream model
  • Traditional relational data models are not applicable to NoSQL; therefore, your SQL chops will not transfer
  • No on-premise installation

The only problem you will have with investors the moment you tell them you are using Firebase is that they will take a good hard look at them, and decide to invest in them instead. Because selling shovels is more profitable than prospecting for gold.

If you are using Firebase you should at the very least be cognizant that you need to monetize your fabulous mouse trap. Tools provided, and I assume you have monetization to go along with all the analytical tools that Firebase provides to delight your potential investors/acquisitors.

Doing the monetization bit is hard, as in building the tools are h

The only problem you will have with investors the moment you tell them you are using Firebase is that they will take a good hard look at them, and decide to invest in them instead. Because selling shovels is more profitable than prospecting for gold.

If you are using Firebase you should at the very least be cognizant that you need to monetize your fabulous mouse trap. Tools provided, and I assume you have monetization to go along with all the analytical tools that Firebase provides to delight your potential investors/acquisitors.

Doing the monetization bit is hard, as in building the tools are hard.

Doing the analytics in house is harder still. It requires real skill. You cannot improvise that kind of skill. And it could take you tears (typo for years) to personally develop those tools, and learn how to use them.

And the bottom line is that you should only be concerned about your value proposition and its monetization (potential or not).

Because if somebody wants to buy an app instead of reverse engineering it, the fundamental value proposition in its market vertical is the only thing they care about. That and time to market. Which means they will not mess with hiring the team and trying to execute on it themselves.

Investors (or corporate purchasers) don't invest on the basis of return. They invest/purchase on a risk adjusted basis.

Lastly, the only thing of value on the balance sheet is the trade mark equity. Don't let anybody tell you otherwise. Among the accounting challenged that is called the brand.


The opposite argument is that nobody is going to pay stupid money for something they can reverse engineer. Running proprietary scripts all the way through the engineering stack, makes entry and duplication much much harder.

You need to accept that somebody will legitimately make that argument. I aint buying, but I am absolutely certain that some dim-witted corporate drone has made the argument to his bosses. Which Miss CEO promptly dismissed with prejudice, on a risk adjusted basis.


Your risk adjusted basis is:

You have to recruit six people with all the necessary technical skills.

You have to recruit another six people to market and sell the mouse trap.

And you have to execute on the basic technical proposition without having verified if your business proposition is sound.

Then you have to execute on your marketing and business plan on the basis of untested technology at volume.

You will have to convince all your peeps to work for peanuts and options to purchase stock at today’s price, for the next eighteen months… GOOD LUCK WITH THAT.

And of course money only grows on the top of the tallest trees, and you look like an ant eater not a giraffe. So God Speed on finding the cash to run your engines as you go up and down down the runway trying to find lift…

So on a risk adjusted basis, 3 months and one quarter the personnel is a far better proposition than 18 months with a large burn rate and a massive execution risk. Because shit happens, often. And when you pay in peanuts you get monkeys: “Sure I can do that…”


So I poured twenty grand into restoring this eighties car I really loved. !@#king Italian sports cars… I might as well develop a coke habit with the hood ornament to go along with that…

Where were we? Ah yes. So I put out five for the car. And twenty for the restoration. Then I find another beauty I want to put my greedy sweaty palms on. And so I list the bad-girl on the net’ and the best I got is fifteen.

Three years later the car is now worth thirty.

Do the math.

The same applies to business propositions. If you invest $2m and two years of tears and blood, that does not mean you have a 2m proposition. Because investors don't invest on opportunity cost. They invest on a risk adjusted basis.

And if a corporate wants to buy your gizmo, lock stock and barrel, they will do so on the basis of the return, or more likely on the basis of the value of your contribution to the perceived value of the corporate stock. Because they are payed in options, and unless something bumps up the value, they cannot profit from the transaction themselves.

So why would you spend money you have no idea you can ever get back? That is the basic proposition for using a tool integrator (and if I was the bastard running Firebase I would put a contract out on me immediately for calling them an integrator…). Speed of execution is everything because building your own tools takes time. And if nobody wants your mouse trap, why spend the money building the tooling to mass produce it?

Speed of execution is EVERYTHING.


Your question presupposes weakness. And the weak get crushed in the market for ideas.

Because what you are saying is that you are done with your project, you have lost interest, and have no intention of doing the dirty work of marketing it, selling it, getting customer feedback and iterating on it. Your are saying you are done.

“I have built it! And so can somebody please sign over a check for a couple of gazillion dollars, because I got better things to do with my time…

And this is the bottom line. You cannot sell an app. Nobody is going to buy it.

If the app has true value to users and one of your competitors decides on a risk adjusted basis that its cheaper for him/her to buy you out, they will come knocking on your door and take you out of your misery.

So no, you cannot sell an app. But you can certainly buy one. Lock stock and barrel and hopefully with the chief nerd in golden handcuffs for six months.

But first things first, build value your users/customers love and love to refer. Because unless you have that, you have nothing of value, regardless of how it was built.

Thanks for the ask, and good luck.

This is a question I get from a lot of clients as many of our products rely heavily on Firebase. The answer is very dependant on your application but in almost all cases this will never be a problem.

Where do the costs occur?

If you look at the Firebase pricing plan you can see that data is the main constraint for the pricing brackets. When you move up a tier you get various increases in data allowances as well as more database operations. This means you need to look at what your app does to see the impact of more users.

What does my app do?

This is the next question you need to ask yourself. Many

This is a question I get from a lot of clients as many of our products rely heavily on Firebase. The answer is very dependant on your application but in almost all cases this will never be a problem.

Where do the costs occur?

If you look at the Firebase pricing plan you can see that data is the main constraint for the pricing brackets. When you move up a tier you get various increases in data allowances as well as more database operations. This means you need to look at what your app does to see the impact of more users.

What does my app do?

This is the next question you need to ask yourself. Many apps will be dealing only in text strings meaning the data amount is very small. Images would be a step up from this and videos another jump in data usage. You need to think about how often your app stores this data. It might be that you only upload a single image for each user or it could be that you send multiple images while using. In both these cases the data usage will vary hugely.

Before worrying about how you will cope with 1M users think about how the app will fare with 1–10k users. In Firebase’s case you will probably be on the free tier (as long as you are not guzzling data) up to 100k users.

Think about this for a moment. You will have 100k users on your app. Even if you only add advertising you should be able to make the $25 a month to cover the Firebase FLAME costs.

The motto I use with my clients is this:

By the time you need to start worrying about backend costs for your app you can stop worrying about backend costs for your app

Once you reach the amount of users to requiring you to start payment you will have a successful app with a big user base which can be leveraged to start paying you back.

Should I use Firebase?

This is the final question you should ask yourself. Up until now this question could have been about one of the many different backends on offer.

If you are unsure I would be inclined to say: YES use Firebase!!

They are a great company and offer a fantastic product. Being owned by Google and having recently updated all their code they are unlikely to close down (RIP Parse). They also provide extensive and clear documentation and great support. There is a huge online community meaning sites like this and Stackoverflow have a huge number of questions to help you.

It is worth looking at your app though. Firebase does have some disadvantages:

  1. There is no easy way of querying data
  2. There is no way of executing code on the server

This is what should be researched when looking at whether Firebase is the right backend for you and even these can be mainly mitigated by using a separate server to control these tasks.

Conclusion: Unless your app is very data intensive then you won’t meet any of the data caps. Firebase will help you get your app online quickly and cheaply before scaling excellently once the users start pushing the upper limits.

NOTE: I would never recommend someone building their own backend when starting a new app. It might be that you have the skills to do it but in the long run it will cost you more (in your valuable time) than using another provider. Once your app is a great success and you are paying monthly fees to a backend then you can invest the money in creating a custom backend which suits your data type. Creating it yourself also requires a huge amount of invested time. If your app fails then this time is completely wasted.

Hi,

I would like to answer this by sharing a real life experience. We created an IoT platform in my company named 700 Dollar Startups. It allows users to control home appliances using their smartphone. The platform also collects temperature and air parameters at your home.

We settled to use the following stack:

  • Firebase - for backend
  • Angular JS - FrontEnd
  • NodeJS - to run IoT code in raspberry
  • Ionic - for the mobile app

Below is our platform architecture.

Here are the advantages based on our experience:

  1. Three way binding - Firebase API solves the problem of raise condition in database. A client browser,

Hi,

I would like to answer this by sharing a real life experience. We created an IoT platform in my company named 700 Dollar Startups. It allows users to control home appliances using their smartphone. The platform also collects temperature and air parameters at your home.

We settled to use the following stack:

  • Firebase - for backend
  • Angular JS - FrontEnd
  • NodeJS - to run IoT code in raspberry
  • Ionic - for the mobile app

Below is our platform architecture.

Here are the advantages based on our experience:

  1. Three way binding - Firebase API solves the problem of raise condition in database. A client browser, back-office, and mobile consumer can update a data simultaneously without the problem of synchronization. As soon as data is updated, added, inserted, or deleted all update are automatically pushed to the client via API.
  2. Speed of Development - Google Firebase Database is NoSQL database with out of the box API connectors and wrappers for query purposes. As a result, rather than building REST API just like the traditional way of connecting thin client to database, with Firebase, a company can simply use their SDK to do the same purpose. As a result, business would be able to cut their development time by removing the API development component. Less scope, means less development cost as well.
  3. Realtime update - The old ways of doing things is that a client connected to database need batch update to get new sets of data. It is an inefficient architecture, imagine a program has to read 1 million records every fifteen (15) minutes with or without update. With Google Firebase Database, a client can be automatically triggered for refresh via Callback as soon as an update is made in the database. With thus technology, developers are assured to only get a new sets of data as needed basis. Here is the actual demo of realtime database update (See video below). As soon as data is changed in database, the LED’s state connected to Raspberry devices instantaneously changes status.
  4. Free- Developers and business owners can create two projects in Firebase for free. This means organization need not to buy premium license during R&D stage. It gives developers and decision makers enough time to learn and evaluate the technology.
  5. Authentication - It comes with a builtin authentication module. Supports gmail, Facebook, Twitter, and basic username and password login support. Integrating this module in your app is easy through their SDK.
  6. Rich API Document - The Firebase SDK is well documented and has lots of example over the web. On our case, we were able to try the SDK for NodeJS. Other Platform supported are IOS, Android, Java, and JS.

As for the Disadvantage

  1. No Data Explorer - This issue is more for developers. The Firebase Database does not provide an online tool to allow developers search for a data inside a node. It has a manual tree like data explorer but becomes complicated or difficult to traverse as dataset goes bigger.
  2. No built-in Authorization - One of Firebase strong point is it’s authentication module. However; it could had been better if it is shipped with a pre-created framework for authorization. To date, developers has to secure data and forms by manually coding the roles for a specific users.

Firebase is a NoSQL cloud database. A NoSQL database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.

The Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and synchronized in realtime to every connected client.

Since you particularly asked for Firebase Database, I would be focusing on that only from many features of the Firebase.

Key Features of Firebase Database

  • Real-time

Instead of typical HTTP requests, the Firebase Realtime Database uses data synchronization—every time data

Firebase is a NoSQL cloud database. A NoSQL database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.

The Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and synchronized in realtime to every connected client.

Since you particularly asked for Firebase Database, I would be focusing on that only from many features of the Firebase.

Key Features of Firebase Database

  • Real-time

Instead of typical HTTP requests, the Firebase Realtime Database uses data synchronization—every time data changes, any connected device receives that update within milliseconds. Provide collaborative and immersive experiences without thinking about networking code.

  • Offline

Firebase apps remain responsive even when offline because the Firebase Realtime Database SDK persists your data to disk. Once connectivity is reestablished, the client device receives any changes it missed, synchronizing it with the current server state.

  • Accessible from Client Devices

The Firebase Realtime Database can be accessed directly from a mobile device or web browser; there’s no need for an application server. Security and data validation are available through the Firebase Realtime Database Security Rules, expression-based rules that are executed when data is read or written.

  • Scale across multiple databases

With Firebase Realtime Database on the Blaze pricing plan, you can support your app's data needs at scale by splitting your data across multiple database instances in the same Firebase project. Streamline authentication with Firebase Authentication on your project and authenticate users across your database instances. Control access to the data in each database with custom Firebase Realtime Database Rules for each database instance.

Real World Usage

I've personally used Firebase in number of applications and it is very fluid in its working. It is highly efficient if you want a real-time database that is synced across every client.

Other useful features of Firebase includes -

  1. Cloud Messaging (FCM)
  2. Authentication
  3. Cloud Firestore
  4. Storage
  5. Hosting
  6. Cloud Functions
  7. Crashalytics
  8. Performance Monitoring
  9. Test Lab
  10. Crash Reporting
  11. Predictions
  12. Remote Config
  13. Dynamic Links
  14. App Indexing
  15. AdWords
  16. AdMob

Firebase is, essentially, a key-value store that you can use to quickly prototype and run a simple application, either native mobile or in-browser javascript.

They include all the authentication stuff and website hosting, so it takes away a lot of the pain of getting started and allows you to get something up and running really quickly. I haven’t played with it very much, but from what I’ve seen and heard it is a fantastic product!

What Firebase will not do for you, however, is any business logic on your stored data. You would have to incorporate that into the front-end application, which for co

Firebase is, essentially, a key-value store that you can use to quickly prototype and run a simple application, either native mobile or in-browser javascript.

They include all the authentication stuff and website hosting, so it takes away a lot of the pain of getting started and allows you to get something up and running really quickly. I haven’t played with it very much, but from what I’ve seen and heard it is a fantastic product!

What Firebase will not do for you, however, is any business logic on your stored data. You would have to incorporate that into the front-end application, which for complex stuff is simply not a viable option.

If you’re making something cool that just needs a fast, reliable database, user authentication and usage tracking, then Firebase is a great way to go. If you’re building something that has complex back-end business rules then you’re going to run into difficulties.

You can totally combine it with a custom application of course, store your data in Firebase and have a middleware layer that does the business logic, but for most business cases this isn’t really a good compromise.

Pro’s:

1. If your app does run of a centralized DB, and is updated by a lot of

users – then it’s more than capable of handling the Real-Time data

updates between devices.

2. Stored in the cloud so readily available everywhere.

3. Cross Platform API (If you are using this DB with an App)

4. They Host the data. -Meaning if you are storing a lot of data, you don’t have to worry about hardware!

Con’s:

1. Unless your app runs of one centralized database updated by a vast quantity of users, it’s a major overkill.

2. Storage format is entirely different to that of SQL, (Firebase uses JSON) so you wouldn’t be

Pro’s:

1. If your app does run of a centralized DB, and is updated by a lot of

users – then it’s more than capable of handling the Real-Time data

updates between devices.

2. Stored in the cloud so readily available everywhere.

3. Cross Platform API (If you are using this DB with an App)

4. They Host the data. -Meaning if you are storing a lot of data, you don’t have to worry about hardware!

Con’s:

1. Unless your app runs of one centralized database updated by a vast quantity of users, it’s a major overkill.

2. Storage format is entirely different to that of SQL, (Firebase uses JSON) so you wouldn’t be able to migrate that easily.

3. Reporting tools won’t be anywhere near the ones of standard SQL.

4. Costs! -Limited to 50 Connections and 100mb of Storage!

5. You don’t host the data, Firebase does. And depending on which server you get put on, viewing there up time there seems to be a lot of disruption lately.

Read more at: What are the advantages and disadvantages of Firebase for a database? - FAQs System

When you want to be vendor independent. And if you plan your app to last more then 5 years. If your app will be used to store some data for years and some business will rely on you than you should not use firebase, why? Look what happebed to Parse, google have a long list of closed projects and nobody can say for how long firebase will last. You shold consider what is better: invest now in independent solution, or invest later to move all the apps related to your new backend and backend itself to another platform. If your solution is “made fast, fast forgotten”, or safety of the data not reall

When you want to be vendor independent. And if you plan your app to last more then 5 years. If your app will be used to store some data for years and some business will rely on you than you should not use firebase, why? Look what happebed to Parse, google have a long list of closed projects and nobody can say for how long firebase will last. You shold consider what is better: invest now in independent solution, or invest later to move all the apps related to your new backend and backend itself to another platform. If your solution is “made fast, fast forgotten”, or safety of the data not really a big matter for your users then firebase is very good solution.

It looks like Firebase/Google has resolved the problem in an update, but as someone who is naturally paranoid, I second the motion of making sure that your back end infrastructure can be swapped out no matter the SaaS provider.

Yes, it's more work. But ultimately it's worth it.

If they hadn't gotten the attention of someone who could fix things, they would have been out a lot of money, or their service would have been killed. And of all of the positive things that I can say about Google, good customer support doesn't make the top 100.

I'm still planning on using Firebase for various products movi

It looks like Firebase/Google has resolved the problem in an update, but as someone who is naturally paranoid, I second the motion of making sure that your back end infrastructure can be swapped out no matter the SaaS provider.

Yes, it's more work. But ultimately it's worth it.

If they hadn't gotten the attention of someone who could fix things, they would have been out a lot of money, or their service would have been killed. And of all of the positive things that I can say about Google, good customer support doesn't make the top 100.

I'm still planning on using Firebase for various products moving forward, but will continue to keep my servers in the loop.