One of the most popular Baas solutions, Firebase, was launched in 2011 and acquired by Google in 2014.
Today this real-time database offers 18 services and holds one of the leading positions on the market.
Each and every software needs a backend, and this is where Backend-as-a-Service (Baas) solutions come into play. As a result, your backend side development is automated. More specifically, all the behind-the-scenes processes, such as database management, user authentication, updates, push notifications, etc., are taken care of.
We have recently covered why Firebase is a* wonderful solution to build your MVP*. Just like any other software, Firebase also comes with its limitations and downsides. Let us take a closer look on what the obstacles of using this software development platform may be.
1. Limited support for iOS features
While advertised as a cross-platform solution, Firebase still focuses more on the Android devices. It makes sense, since Android is commercially sponsored by Google. It is very easy to integrate Firebase Test Lab with Android studio. Regarding iOS, the features in Firebase don’t always go hand in hand with Android — it is only in 2018 that Test Lab announced beta support for some iOS test devices.
The upside to this disadvantage is that Firebase constantly keeps changing. If you compare the 2018 and the 2020 versions, you won’t even see the main product. However, limited support for certain iOS features is something to keep in mind for your product.
2. Unpredictable pricing
Firebase comes in two versions: Spark Plan and Blaze Plan. The Spark Plan is 100% free and it is ideal for those who are just getting started with Firebase. Blaze Plan is a ‘pay as you go’ option for apps at scale. Here it is where it becomes problematic — there is no way of knowing in advance how the rise in traffic will impact the price in the end. The more your product goes, the more expensive Firebase becomes. Since there is no fixed price for the Blaze Plan, the growth of your business can become both a blessing and a curse.
And to be honest, even us being professional Firebase integrators sometimes find it hard to address the client’s question about future costs of using Firebase. By the way, we slightly covered to a topic in our article about app development costs.
3. Real-time synchronization issues
Firebase is very oriented towards real time synchronization. This can result in a data conflict — if somebody types in data, the screen automatically adjusts in real time for all the users simultaneously. For many, it’s more convenient to receive an update notification instead of automatic adjustments.
4. Limited querying capabilities
Firebase uses Realtime Database as main storage and it doesn’t come with a filter for capabilities. Firebase also uses JSON file format, which makes your entire database a gigantic JSON file. Having database as a single file doesn’t allow introducing relations between different data files.
As a result, you cannot query for more than one key at a time. You won’t be able to query or list users or stored files in Firebase.
5. Data migration problems
The more your product grows, the more issues you can have with data migration. As mentioned before, Firebase uses JSON with almost zero SQL features, which makes it a headache to migrate from the database. With this BaaS, you have to handle data the way they do it.
For example, if you wanted to move large amounts of data in an SQL database, you could have written queries in SQL and retrieve the information you need. Firebase doesn’t allow this. Migrating data in Firebase is way more complicated than in most of the SQL databases.
6. Vendor lock-in
As you may have understood, Firebase comes with several inherent features and particularities that don’t exist anywhere else. This and the data migration problem make it difficult to move away from Firebase. It doesn’t provide any tools for you to migrate your data to a different platform. As a result, you are stuck with one vendor and you have to take what they give you. This includes adjusting to all the changes, going with the increase in pricing (see p.1), etc.
7. Doesn’t work in the countries that don’t allow Google
Simple, yet necessary to mention — Firebase won’t work in the countries that don’t allow Google. You can check out Google transparency report for the most recent list of countries that ban Google and/or some of its services.
To conclude, there is nothing globally wrong with Firebase as a solution per se. It is a very powerful tool for the right cases and its position of the market is proof thereof.
If you find these downsides critical for your business, what are the alternatives? Let’s take a look how AWS Amplify corresponds to them**:**
- Operative solution for the mobile and web applications.
- Number 1 cloud solution in the world, covering greater number of regions and various cloud services
- Amplify operates with a more advanced database — DynamoDB.
- In case, great functional changes are needed, resources AWS and architecture Amplify will allow migrating data to a relational database or using the same DynamoDB to move to a more advanced and manageable solution like Serverless, using AWS Lambda as a business logic processor and use complex architectural solutions without migrating the product to another cloud provider.
Therefore, at Moqod, we thoroughly study the nature of the data of the future product and discuss with the client the functional future of the product, not only as an IT, but also as a Business solution.
Drawing on our extensive experience of using Firebase and AWS in our own products and those of our customers, we are always happy to help in choosing the most technically rational and business optimal solution.
For a new, fast MVP with a solid database, Firebase is great way to start. However, once you start with Firebase, you will most likely have to stick with it till the very end. Many don’t recommend Firebase for growing projects and projects with complex data due to the reasons mentioned in the article. There are a lot of features to explore in Firebase and decide whether it is the right solution for your product instead of rushing, just like with any other tool.
Please don’t hesitate to contact us if you would like more advise on this subject — we will be thrilled to help you out!