Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Memahami Penagihan Basis Data Waktu Nyata

Firebase menagih data yang Anda simpan di database dan semua lalu lintas jaringan keluar pada lapisan sesi (lapisan 5) model OSI. Penyimpanan ditagih sebesar $5 untuk setiap GB/bulan, dievaluasi setiap hari. Penagihan tidak dipengaruhi oleh lokasi database Anda. Lalu lintas keluar mencakup overhead koneksi dan enkripsi dari semua operasi basis data dan data yang diunduh melalui pembacaan basis data. Baik pembacaan dan penulisan basis data dapat menyebabkan biaya koneksi pada tagihan Anda. Semua lalu lintas ke dan dari database Anda, termasuk operasi yang ditolak oleh aturan keamanan, menyebabkan biaya yang dapat ditagih.

Beberapa contoh umum lalu lintas yang ditagih meliputi:

  • Data yang diunduh: Saat klien mendapatkan data dari database Anda, Firebase mengenakan biaya untuk data yang diunduh. Biasanya, ini merupakan bagian terbesar dari biaya bandwidth Anda, tetapi itu bukan satu-satunya faktor dalam tagihan Anda.
  • Overhead protokol: Beberapa lalu lintas tambahan antara server dan klien diperlukan untuk membuat dan memelihara sesi. Bergantung pada protokol yang mendasarinya, lalu lintas ini mungkin mencakup: overhead protokol realtime Firebase Realtime Database, overhead WebSocket, dan overhead header HTTP. Setiap kali koneksi dibuat, overhead ini, digabungkan dengan overhead enkripsi SSL apa pun, berkontribusi pada biaya koneksi. Meskipun ini bukan bandwidth yang banyak untuk satu permintaan, ini bisa menjadi bagian penting dari tagihan Anda jika payload Anda kecil atau Anda sering membuat koneksi pendek.
  • Overhead enkripsi SSL: Ada biaya yang terkait dengan overhead enkripsi SSL yang diperlukan untuk koneksi yang aman. Rata-rata, biaya ini sekitar 3,5 KB untuk jabat tangan awal, dan sekitar puluhan byte untuk header rekaman TLS pada setiap pesan keluar. Untuk sebagian besar aplikasi, ini adalah sebagian kecil dari tagihan Anda. Namun, ini bisa menjadi persentase yang besar jika kasus spesifik Anda memerlukan banyak jabat tangan SSL. Misalnya, perangkat yang tidak mendukung tiket sesi TLS mungkin memerlukan jabat tangan koneksi SSL dalam jumlah besar.
  • Data Firebase console: Meskipun ini biasanya bukan bagian yang signifikan dari biaya Realtime Database, Firebase mengenakan biaya untuk data yang Anda baca dan tulis dari Firebase console.

Perkirakan tagihan penggunaan Anda

Untuk melihat koneksi Realtime Database dan penggunaan data Anda saat ini, periksa tab Penggunaan di Firebase console. Anda dapat memeriksa penggunaan selama periode penagihan saat ini, 30 hari terakhir, atau 24 jam terakhir.

Firebase menampilkan statistik penggunaan untuk metrik berikut:

  • Koneksi: Jumlah koneksi real-time simultan, yang saat ini terbuka, ke database Anda. Ini termasuk koneksi waktu nyata berikut: WebSocket, polling panjang, dan acara yang dikirim server HTML. Itu tidak termasuk permintaan RESTful.
  • Penyimpanan: Berapa banyak data yang disimpan dalam database Anda. Ini tidak termasuk hosting Firebase atau data yang disimpan melalui produk Firebase lainnya.
  • Unduhan: Semua byte yang diunduh dari database Anda, termasuk overhead protokol dan enkripsi.
  • Muat: Grafik ini menunjukkan seberapa banyak database Anda sedang digunakan, memproses permintaan, selama interval 1 menit tertentu. Anda mungkin melihat masalah kinerja saat database Anda mendekati 100%.

Optimalkan penggunaan

Ada beberapa praktik terbaik yang dapat Anda terapkan untuk mengoptimalkan penggunaan database dan biaya bandwidth.

  • Gunakan SDK asli: Jika memungkinkan, gunakan SDK yang sesuai dengan platform aplikasi Anda, bukan REST API. SDK mempertahankan koneksi terbuka, mengurangi biaya enkripsi SSL yang biasanya bertambah dengan REST API.
  • Periksa bug: Jika biaya bandwidth Anda tiba-tiba tinggi, pastikan aplikasi Anda tidak menyinkronkan lebih banyak data atau menyinkronkan lebih sering dari yang Anda inginkan. Untuk menemukan masalah, gunakan fitur profiler untuk mengukur operasi baca Anda dan aktifkan logging debug di SDK Android , Objective-C , dan Web . Periksa proses latar belakang dan sinkronisasi di aplikasi Anda untuk memastikan semuanya berfungsi seperti yang Anda inginkan.
  • Kurangi koneksi: Jika memungkinkan, coba optimalkan bandwidth koneksi Anda. Permintaan REST yang sering dan kecil bisa lebih mahal daripada satu koneksi berkelanjutan menggunakan SDK asli. Jika Anda menggunakan REST API, pertimbangkan untuk menggunakan HTTP keep-alive atau server-sent event , yang dapat mengurangi biaya dari jabat tangan SSL.
  • Gunakan tiket sesi TLS: Kurangi biaya overhead enkripsi SSL pada sambungan yang dilanjutkan dengan menerbitkan tiket sesi TLS . Ini sangat membantu jika Anda memerlukan koneksi yang sering dan aman ke database.
  • Kueri indeks: Mengindeks data Anda mengurangi bandwidth total yang Anda gunakan untuk kueri, yang memiliki manfaat ganda menurunkan biaya dan meningkatkan kinerja database Anda. Gunakan alat profiler untuk menemukan kueri yang tidak diindeks di database Anda.
  • Optimalkan pemroses Anda: Tambahkan kueri untuk membatasi data yang dikembalikan oleh operasi penyadapan Anda dan gunakan pemroses yang hanya mengunduh pembaruan ke data — misalnya, on() bukan once() . Selain itu, tempatkan pendengar Anda sejauh mungkin untuk membatasi jumlah data yang disinkronkan.
  • Kurangi biaya penyimpanan: Jalankan pekerjaan pembersihan berkala dan kurangi data duplikat di database Anda.
  • Gunakan Aturan: Cegah operasi yang berpotensi mahal dan tidak sah di database Anda. Misalnya, menggunakan Aturan Firebase Realtime Database dapat menghindari skenario di mana pengguna jahat mengunduh seluruh database Anda berulang kali. Pelajari lebih lanjut cara menggunakan Aturan Firebase Realtime Database .

Rencana pengoptimalan terbaik untuk aplikasi Anda bergantung pada kasus penggunaan khusus Anda. Meskipun ini bukan daftar praktik terbaik yang lengkap, Anda dapat menemukan lebih banyak saran dan tips dari pakar Firebase di saluran Slack kami atau di Stack Overflow .