Home Android & Kotlin Books Saving Data on Android

16
Usage & Performance Written by Harun Wangereka

Heads up... You're reading this book for free, with parts of this chapter shown beyond this point as scrambled text.

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.

Pricing model

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:

  1. Simultaneous connections: You can have up to 100 simultaneous connections for free. This limit can’t be raised.
  2. 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.
  3. Downloaded data: You can download 10GB of data per month for free from Realtime Database.
  4. 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).

Limitations

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.

Performance

Monitoring

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

Firebase console can also be a helpful debugging tool. The usage tab in the console gives you data about storage, bandwidth and simultaneous connections.

Console usages section
Vawduhi oxasud beqxeug

Cloud Monitoring

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.

Profiling

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.

Optimizing

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.

Key points

  • 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.

Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum here.

Have feedback to share about the online reading experience? If you have feedback about the UI, UX, highlighting, or other features of our online readers, you can send them to the design team with the form below:

© 2021 Razeware LLC

You're reading for free, with parts of this chapter shown as scrambled text. Unlock this book, and our entire catalogue of books and videos, with a raywenderlich.com Professional subscription.

Unlock Now

To highlight or take notes, you’ll need to own this book in a subscription or purchased by itself.