Membaca database Realtime secara langsung VS menggunakan Cloud Functions
Saya telah membaca artikel ini tentang membaca database realtime secara langsung vs memanggil fungsi cloud yang mengembalikan data database.
Jika saya mengembalikan sebagian besar data, misalnya objek json yang menyimpan data yang mewakili 50 komentar pengguna dari fungsi cloud, apakah ini dihitung sebagai data Data Keluar (Keluar)? Jika demikian, apakah biayanya $ 0,12 per gb per bulan?
Komentar disimpan seperti itu dengan kunci tambahan.
comments: [0 -> {text: “Adsadsads”},
1 -> {text: “dadsacxdg”},
etc.]
Selain itu, saya telah membaca Anda dapat memanggil goOffline () dan goOnline () menggunakan sdks klien untuk menghentikan koneksi bersamaan. Apakah ada biaya yang terkait dengan penutupan dan pembukaan koneksi database atau hanya aspek kecepatan membuka koneksi setiap kali Anda membaca?
Apakah akan lebih hemat biaya untuk memanggil fungsi cloud yang mengembalikan kumpulan 50 komentar atau mengizinkan perangkat untuk membaca komentar langsung dari database Tapi buka / tutup sebelum / setelah setiap membaca ke database, menggunakan orderByKey (), sekali ( ), startAt () dan limitToFirst ()?
misalnya sesuatu seperti ini
ref(‘comments’).once().orderByKey().startAt(0).limitToFirst(50).
Terima kasih
Jawaban
Jika Cloud Function Anda membaca data dari Realtime Database dan mengembalikan (bagian dari) data tersebut ke pemanggil, Anda membayar data yang dibaca dari database (di $1/GB) and then also for the data that your Cloud Function returns to the user (at $0,12 / GB).
Membuka koneksi ke database berarti data dikirim dari database ke klien, dan Anda dikenai biaya untuk data ini (biasanya beberapa KB).
Mana yang lebih hemat biaya adalah sesuatu yang dapat Anda hitung setelah Anda memiliki semua parameter. Saya akan merekomendasikan untuk tidak melakukan pengoptimalan biaya prematur: Firebase memiliki tingkat gratis yang cukup besar di Realtime Database-nya, jadi saya akan mulai membaca langsung dari database dan melihat berapa banyak lalu lintas yang dihasilkan. Selain itu: jika Anda mengelola status koneksi secara eksplisit, dan tampak tidak tertarik pada sifat realtime Firebase, mungkin ada alternatif yang lebih baik / lebih murah daripada Firebase untuk memenuhi kebutuhan Anda.