pikobar-flutter icon indicating copy to clipboard operation
pikobar-flutter copied to clipboard

Pesan Personal

Open yohangdev opened this issue 4 years ago • 12 comments

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

yohangdev avatar Mar 28 '20 16:03 yohangdev

untuk pesan personal berarti di collection yang berbeda ya mas? @yohang88

gaganugraha33 avatar Apr 01 '20 04:04 gaganugraha33

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.

anandarh avatar Apr 01 '20 05:04 anandarh

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.

yohangdev avatar Apr 01 '20 07:04 yohangdev

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 avatar Apr 01 '20 07:04 aldidoanta

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

maasdi avatar Apr 02 '20 04:04 maasdi

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.

maasdi avatar Apr 04 '20 15:04 maasdi

untuk issue ini masih proses riset ya?

gaganugraha33 avatar Apr 06 '20 03:04 gaganugraha33

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.

yohangdev avatar Apr 06 '20 05:04 yohangdev

siapp mas @yohang88

gaganugraha33 avatar Apr 06 '20 06:04 gaganugraha33

Btw mas @maasdi sudah join Slack project ini belum yak?

yohangdev avatar Apr 07 '20 13:04 yohangdev

Kang @yohang88 saya ada di #pikobar-web group. Mention aja id saya Maaz

maasdi avatar Apr 08 '20 00:04 maasdi

Siaap mas @maasdi

Btw nampaknya karena ini cukup ada effort, saya usul geser ke milestone saja.

yohangdev avatar Apr 08 '20 05:04 yohangdev