Heads up... You're reading this book for free, with parts of this chapter shown beyond this point astext.
You can unlock the rest of this book, and our entire catalogue of books and videos, with a raywenderlich.com Professional subscription.
In the previous chapters, you learned how to work with the Firebase Realtime Database. Realtime Database is built to handle high-traffic apps. To work effectively with Realtime Database, you have to be aware of its usage and performance limits. This chapter covers just that. In this chapter, you’ll cover Realtime Database pricing model, general Realtime Database limits, reading and writing limitations, and performance. You’ll learn how to measure and optimize performance and how to profile your database.
The Realtime Database is free — but that’s only true up to a certain point. If you visit the Firebase pricing page, which you can access at https://firebase.google.com/pricing, you’ll see, “Start for free, then pay as you go.” Firebase is designed to work for free for smaller startups or experimental projects, like the one you will build in this section. You can see that Firebase offers additional pricing plans.
The Spark Plan is also free and exists so that everyone can experiment and get their hands on Firebase, integrate it into their apps and see how it performs. The majority of the money that Firebase makes comes from big apps with lots of users. All of the products that Firebase has are included in all the plans that they offer. This means that you can try out any product you want for free.
When it comes to Realtime Database, the metrics that Firebase uses to decide how much to bill you for their services are the following:
- Simultaneous connections: You can to have up to 100 simultaneous connections for free.
- Data storage: You can store 1GB of data for free. Data in this context is text data and 1GB of text data is an enormous amount.
- Downloaded data: You can download 10GB of data per month for free from the Realtime Database.
- Databases per project: You are not allowed to have multiple databases per project for free.
To understand better Firebase billing and how to optimize Realtime Database usage you can check out official Firebase billing guidelines at https://firebase.google.com/docs/database/usage/billing.
As mentioned earlier in this chapter, Realtime Database is built to handle high-traffic apps, but it still has some limits. You’ll examine some of those limits next. All of the limits that will be mentioned apply for the Realtime Database in general, not for the free plans.
Realtime Database offers several ways to monitor database performance and find the source of potential problems in your app. It offers different tools that provide insight into performance data. You’ll look into those tools next.
Database profiling is critical for finding bottlenecks or other issues that might be degrading the user experience. The Firebase command-line interface offers a variety of tools. One of these, the Database Profiling tool, analyzes the activity in the database over a specific period of time and generates a detailed report that you can use to troubleshoot the database performance.
The best way to optimize performance is to gather all of the data from the tools mentioned above. After you have gathered the data find out about best practices in the area that you want to improve and make changes accordingly.
- Realtime Database is free up to a certain point.
- Realtime Database is built to handle high-traffic apps but it has some limits.
- Firebase provides you with tools that allow you to monitor, profile and optimize Realtime Database performance.
Where to go from here?
In this chapter, you covered the usage and performance aspects of the Realtime Database, which are critical to know for large scale apps.