بعد أن تلقيت مشروعًا آخر لدعم تطبيقات الهاتف المحمول للحصول على الدعم ، شعرت ، للأسف ، بحقيقة أن المراسلات الجماعية لرسائل الدفع إلى الموضوعات ليست محلية. على الإنترنت ، لم أجد أيضًا مواد مفصلة حول هذه المسألة. وكل ما وجدته يتعلق بالتوطين من جانب العميل ، وهذا ليس مناسبًا دائمًا ، لأن يتطلب التحديد المسبق لجميع خيارات الرسائل الممكنة وإنشاء ملفات موارد لهم مع كل الترجمات الممكنة.
في مشاركتي ، سأخبرك بكيفية ترجمة رسائل الدفع في موضوعات على الجانب الخلفي لتطبيق الهاتف المحمول.
في الأمثلة ، سأستخدم مكتبة 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