условия обмена сообщениями с несколькими темами не работают - PullRequest
0 голосов
/ 23 мая 2018

Я использую узел firebase admin для отправки сообщений на устройства Android.Все работает.За исключением случаев, когда я пытаюсь отправить сообщения на несколько тем.В приведенном ниже примере кода я просто подписываюсь на 2 темы и сразу после этого отправляю уведомления в несколько тем в условии.Ничего не приходит на мой телефон.Когда вы просто отправляете в одну тему, уведомление приходит успешно.Я не понимаю, почему это не работает.Нет ответа от администратора Firebase.просто: 'projects / admob-app-id-xxxx / messages / xxxx'

var admin = require("firebase-admin");
var serviceAccount = require("./serviceAccountKey.json");
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
databaseURL: "https://admob-app-id-xxxxx.firebaseio.com"
});

var registrationTokens = ["xxxxx"];
var topica = "AAA";
var topicb = "BBB";
var data = {};

var message = { 
            condition : "'"+topica+"' in topics || '"+topicb+"' in topics",
            data: {'message':JSON.stringify(data)},
            android: {
                ttl: 36000 * 1000,
                priority: 'normal',
                collapseKey: "test"
            }
        };



        admin.messaging().subscribeToTopic(registrationTokens, topica)
            .then(function(response) {

                admin.messaging().subscribeToTopic(registrationTokens, topicb)
                    .then(function(response) {

                        admin.messaging().send(message, dryRun)
                            .then((response) => {
                            console.log('success', response);
                    }).catch((error) => {
                            console.log('error', error);
                    });

                    })
                .catch(function(error) {
                    console.log('Error subscribing to topic:', error);
                });
            })
            .catch(function(error) {
                console.log('Error subscribing to topic:', error);
        });

1 Ответ

0 голосов
/ 12 сентября 2018

Это ошибка с FCM.Вы можете обойти это, разбив сообщение на несколько сообщений.

Вместо отправки одного сообщения.

't1' in topics || 't2' in topics || 't3' in topics

Отправьте три одинаковых сообщения.

't1' in topics && !('t2' in topics) && !('t3' in topics)
't2' in topics && !('t3' in topics)
't3' in topics

Обратите внимание, что ограничение в 5 тем все еще действует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...