Lokalisasi pesan push dalam aplikasi seluler

Setelah menerima proyek backend aplikasi mobile lain untuk dukungan, sayangnya, saya menemukan fakta bahwa pengiriman massal pesan push ke topik tidak dilokalisasi. Di Internet, saya juga tidak menemukan materi terperinci tentang masalah ini. Dan semua yang saya temukan terkait dengan lokalisasi di sisi klien, dan ini tidak selalu nyaman, karena membutuhkan pra-penentuan semua opsi pesan yang mungkin dan membuat file sumber daya untuk mereka dengan semua terjemahan yang mungkin.

Dalam posting saya, saya akan memberi tahu Anda cara membuat lokalisasi pesan push dalam topik di sisi belakang aplikasi seluler.

Dalam contoh, saya akan menggunakan perpustakaan firebase-admin untuk node.js.

Misalkan kita perlu mengirim pesan push untuk mempublikasikan berita di aplikasi. Secara alami, ini paling baik dilakukan melalui topik. Saat ini, Anda dapat berlangganan perangkat ke topik dari server:

admin.messaging().subscribeToTopic(tokens, 'news'), 

Jadi, Anda telah berlangganan perangkat ke berita. Tapi ada masalah. Semua klien, terlepas dari lokal yang dipilih, akan menerima teks pesan push yang sama. Di sini fitur firebase yang relatif baru dapat datang ke penyelamatan - mengirim pesan dengan filter.

Sangat mudah diimplementasikan. Ketika klien mengubah lokal aplikasi, perlu untuk berlangganan klien ke topik dengan lokal baru dan (sayangnya) berhenti berlangganan dari topik dengan lokal sebelumnya

  admin.messaging().subscribeToTopic(tokens, req.prams.lang), admin.messaging().unsubscribeFromTopic(user.lang), user.save({ lang: req.prams.lang }); 

Sekarang, yang masih harus dilakukan adalah mengirim pesan ke topik dengan filter yang ditentukan:

  admin.messaging().send({ ...payloadRu, condition: "'news' in topics && 'ru' in topics" }), admin.messaging().send({ ...payloadEs, condition: "'news' in topics && 'es' in topics" }), admin.messaging().send({ ...payloadEn, condition: "'news' in topics && 'en' in topics" }), 

Pesan yang begitu sederhana ternyata, berbeda dengan apa yang harus saya lakukan untuk memperbaiki proyek. Karena sebenarnya pesannya.

apapacy@gmail.com
20 Oktober 2019

Source: https://habr.com/ru/post/id472198/


All Articles