توطين رسائل الدفع في تطبيقات الهاتف المحمول

بعد أن تلقيت مشروعًا آخر لدعم تطبيقات الهاتف المحمول للحصول على الدعم ، شعرت ، للأسف ، بحقيقة أن المراسلات الجماعية لرسائل الدفع إلى الموضوعات ليست محلية. على الإنترنت ، لم أجد أيضًا مواد مفصلة حول هذه المسألة. وكل ما وجدته يتعلق بالتوطين من جانب العميل ، وهذا ليس مناسبًا دائمًا ، لأن يتطلب التحديد المسبق لجميع خيارات الرسائل الممكنة وإنشاء ملفات موارد لهم مع كل الترجمات الممكنة.

في مشاركتي ، سأخبرك بكيفية ترجمة رسائل الدفع في موضوعات على الجانب الخلفي لتطبيق الهاتف المحمول.

في الأمثلة ، سأستخدم مكتبة firebase-admin لـ node.js.

لنفترض أننا بحاجة إلى إرسال رسالة دفع لنشر الأخبار في التطبيق. وبطبيعة الحال ، من الأفضل القيام بذلك من خلال الموضوع. حاليًا ، يمكنك الاشتراك في جهاز لموضوع ما من الخادم:

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

لذلك ، لقد اشتركت في الجهاز في الأخبار. ولكن هناك مشكلة. سيتلقى جميع العملاء ، بغض النظر عن الإعدادات المحلية المحددة ، نص رسالة الدفع نفسه. هنا يمكن أن تأتي ميزة جديدة نسبيًا من قواعد firebase في عملية الإنقاذ - إرسال الرسائل باستخدام المرشحات.

من السهل جدا تنفيذها. عندما يغير العميل لغة التطبيق ، من الضروري الاشتراك مع العميل في الموضوع باستخدام الإعدادات المحلية الجديدة وإلغاء الاشتراك في هذا الموضوع (للأسف) من الموضوع باستخدام الإعدادات المحلية السابقة

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

الآن ، كل ما يتبقى هو إرسال رسائل إلى الموضوعات باستخدام المرشحات المحددة:

  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" }), 

لقد تحولت هذه الرسالة البسيطة ، على عكس ما يجب علي فعله لإعادة تفعيل المشروع. لأن في الواقع الرسالة.

apapacy@gmail.com
20 أكتوبر 2019

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


All Articles