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 the 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.
Realtime Database is free — but that’s only true up to a certain point. Visit the Firebase pricing page (https://firebase.google.com/pricing), and notice the text - “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’ll build in this section. However, Firebase offers additional pricing plans too.
The Spark Plan is 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:
- Simultaneous connections: You can have up to 100 simultaneous connections for free. This limit can’t be raised.
- 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 Realtime Database.
- Databases per project: You’re not allowed to have multiple databases per project for free.
For more information about Firebase billing and how to optimize Realtime Database usage, check out the official Firebase billing guidelines (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. In general, all of them apply to Realtime Database, not for the free plans alone.
Realtime Database offers several ways to monitor database performance and find the source of eventual problems in your app. It offers the following tools that provide insight into performance data:
Realtime Database Profiler
One of the tools that Firebase provides is the Realtime Database profiler tool. This tool gives you an overview of reading and writing operations on the database in real-time, which includes information about the speed and operation payload size. The information doesn’t have any historical data, so don’t use it to estimate billing.
Firebase console can also be a helpful debugging tool. The usage tab in the console gives you data about storage, bandwidth and simultaneous connections.
Firebase also offers Cloud monitoring. This has a granular approach to performance monitoring. It allows you to use the Metrics Explorer to see the individual performance, create diverse chart dashboards that display several combinations of performance metrics. It gives you ability to monitor your billed usage if you’re on the paid plan, and also contains useful metrics to monitor performance.
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 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 usage and performance.
Where to go from here?
In this chapter, you covered the usage and performance aspects of Realtime Database, which are critical to know for large-scale apps.