Tendo recebido outro projeto de back-end de aplicativos móveis para suporte, infelizmente, deparei-me com o fato de que o envio em massa de mensagens push para tópicos não está localizado. Na Internet, também não encontrei material detalhado sobre esse assunto. E tudo o que encontrei relacionado à localização no lado do cliente, e isso nem sempre é conveniente, porque requer pré-determinar todas as opções de mensagens possíveis e criar arquivos de recursos para elas com todas as traduções possíveis.
No meu post, mostrarei como localizar mensagens push em tópicos no lado de back-end do aplicativo móvel.
Nos exemplos, usarei a biblioteca firebase-admin para node.js.
Suponha que precisamos enviar uma mensagem push para publicar notícias no aplicativo. Naturalmente, isso é melhor feito através do tópico. Atualmente, você pode inscrever um dispositivo em um tópico do servidor:
admin.messaging().subscribeToTopic(tokens, 'news'),
Então, você inscreveu o dispositivo nas notícias. Mas há um problema. Todos os clientes, independentemente do código do idioma selecionado, receberão o mesmo texto da mensagem de envio. Aqui, um recurso relativamente novo do firebase pode ser útil - enviando mensagens com filtros.
É muito fácil de implementar. Quando o cliente altera o código do idioma do aplicativo, é necessário assinar o cliente no tópico com o novo código do idioma e (infelizmente) cancelar a assinatura do tópico com o código do idioma anterior
admin.messaging().subscribeToTopic(tokens, req.prams.lang), admin.messaging().unsubscribeFromTopic(user.lang), user.save({ lang: req.prams.lang });
Agora, tudo o que precisa ser feito é enviar mensagens para tópicos com os filtros especificados:
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" }),
Uma mensagem tão simples acabou, em contraste com o que tenho que fazer para refatorar o projeto. Porque na verdade a mensagem.
apapacy@gmail.com
20 de outubro de 2019