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 messages
nya.
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.