Токен Firebase push работает всего несколько раз

#node.js #firebase #push-notification #firebase-cloud-messaging

#node.js #firebase #push-уведомление #firebase-облако-обмен сообщениями

Вопрос:

Я работаю с отправкой push-уведомлений в мои приложения react native через firebase cloud messaging. Я получаю push-токен с устройства и сохраняю его в своей базе данных.

При вызове push-уведомления из серверной части (nodejs) оно срабатывает несколько раз, и я вижу push-уведомление на своем телефоне. Примерно через два раза после отправки уведомления внезапно он начинает давать мне сбой

Список токенов, вызвавших сбои: {«ответы»: [{«успех»: false, «ошибка»: {«код»:»сообщение / недопустимый аргумент», «сообщение»:»Запрос содержит недопустимый аргумент».}}],»successCount»: 0, «failureCount»: 1}

Затем я получаю другое сообщение на следующем, которое является дальнейшим сообщением:

Список токенов, вызвавших сбои: {«responses»:[{«success»:false,»error»:{«code»:»messaging/registration-token-not-registered»,»message»:» Запрошенный объект не найден.»}}],»successCount»: 0, «failureCount»: 1}

Это мой код для отправки push-уведомлений на nodejs:

 const message = {

        tokens: registrationTokens,
        notification: {
            "title": "TEST",
            "body": "TEST body"
        },
        data: {
            "action": "New_Card",
            "unique_id": 1
        }
    }
    fbMsging.sendMulticast(message)
        .then((response) => {
            if (response.failureCount > 0) {
                const failedTokens = [];
                response.responses.forEach((resp, idx) => {
                    if (!resp.success) {
                        failedTokens.push(registrationTokens[idx]);
                    }
                });
                console.log('List of tokens that caused failures: '   JSON.stringify(response));
                console.log('List of tokens that caused failures: '   failedTokens);
                callback(false);
            } else {
                console.log(response.successCount   ' messages were sent successfully');
                callback(true);
            }
        });
  

Пожалуйста, сообщите.

Комментарии:

1. У вас есть два разных сообщения об ошибках, и они могут не быть связаны друг с другом. Первая ошибка предполагает, что вы передали что-то недопустимое в API, но мы не можем видеть, что это такое, поскольку все скрыто за переменными. Я предлагаю разбить это на что-то более дискретное с жестко закодированными значениями, которые легко видны.

2. Я обновил его с четкими значениями, но да, я вызываю одну и ту же функцию 2 раза, и она работает, затем третий раз выдает недопустимый аргумент, а четвертый раз просто говорит, что не зарегистрирован