pikobar-flutter
pikobar-flutter copied to clipboard
Pesan Personal
Saat ini menu Pesan mengambil dari collection broadcasts. Broadcast ini digunakan untuk Pesan ke semua users.
Kita membutuhkan pesan yang bisa dikirimkan ke user yang sesuai. Misal user A mendapatkan pesan undangan untuk mengikuti Rapid Test.
Jadi di kotak pesan nantinya isinya adalah kombinasi Pesan Broadcast dan Pesan Personal.
Hati-hati ini menyambung ke issue #109
untuk pesan personal berarti di collection yang berbeda ya mas? @yohang88
Sepertinya bisa dibuat subcollection messages di users yah, jadi nantinya users/{userId}/messages/{messagesId}. @yohang88 @gaganugraha33
Btw, ini memungkinkan kah pakai cloud functions untuk copy pesan dari collection brodcasts ke collection messages di user?
Jadi setiap ada penambahan pesan baru di collection broadcasts, akan otomatis juga masuk ke collection messages. Supaya mobile hanya ngambil data dari collection messages. Cara ini juga akan mempermudah untuk issue #109, dengan menambahkan filed untuk mengecek pesan sudah dibaca atau belum pada document di collection messagesnya.
Betul yang disampaikan @anandarh, idealnya bisa dibuat seperti itu.
Jadi saat ada record baru di collection broadcasts, pakai Cloud Functions, akan copy pesan tersebut ke masing-masing user users/{userId}/messages/{messageId}.
Sehingga mobile app tinggal akses records messages masing-masing user.
Ini perlu dicoba dulu sih cloud functions itu agar bisa mengcopy secara massif (jika usernya ratus-ribuan). On check yes.
Dengan jumlah user yang banyak, kemungkinan harus pakai batch processing. https://firebase.google.com/docs/firestore/manage-data/transactions#batched-writes
Nanti aku cek juga, setelah beresin migration untuk firestore
@aldidoanta article ini bisa dijadikan reference, mirip dengan apa yang inginkan di feature ini. https://medium.com/@michael.kimpton/batch-processing-with-firebase-cloud-functions-aa11640cc9ac
kalau ada waktu nanti, saya coba check juga.
Kang @aldidoanta @anandarh ada waktu tadi ngoprek firebase functions, yang mungkin bisa di pake untuk implement feature ini. Saya sudah create pull request di pikobar-functions repo.
untuk issue ini masih proses riset ya?
Nice @aldidoanta @maasdi, betul kalau ada yang bisa riset ini sangat terbantu. Misal kita punya 10rb users, maka setiap ada record baru di broadcasts, akan diduplikasi ke users/{userId}/messages.
Fyi jumlah active users saat ini 500 K users. Tapi yang login masih < 10 K.
Etapi ini masih feel free open discuss yak rekan-rekan, strategi konsep "personal inbox" ini bagusnya seperti apa. Apakah harus duplikasi, atau pakai strategi kombinasi broadcast + personal.
@gaganugraha33 pantau terus yes.
siapp mas @yohang88
Btw mas @maasdi sudah join Slack project ini belum yak?
Kang @yohang88 saya ada di #pikobar-web group. Mention aja id saya Maaz
Siaap mas @maasdi
Btw nampaknya karena ini cukup ada effort, saya usul geser ke milestone saja.