Ошибка метода sendAll () в nodejs с использованием firebase-admin - PullRequest
0 голосов
/ 09 мая 2019

Я использую firebase-admin для nodejs (версия 7.3.0) для отправки push уведомления. При отправке 40k различных сообщений методом sendAll часто сервер получал эту ошибку:

"Реализация учетных данных, предоставленных для initializeApp () через" учетные данные " не удалось получить действительный токен доступа Google OAuth2 с помощью свойства следующая ошибка: «Ошибка при получении токена доступа: ошибка при выполнении запроса: розетка повесить. Код ошибки: ECONNRESET ".

Иногда это работает хорошо, но не всегда.

var admin = require('firebase-admin');
serviceAccount = require('/path_json_adminsdk/yyyyyyyyyy.json');

var defaultApp = admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: 'https://api-project-yyyyyy'
});

var k = 42000;
var contorMessages = 0;
var messages = [];
for(var i=0;i <em><</em> k; i++){
    //.......
    contorMessages = contorMessages + 1;
    var tmp = {
        alert: body.alert,
        payload: body.payload
    };

    //form the array to be sent
        messages.push({
            data: {"body": JSON.stringify(tmp)},
        token: body.token
    });

    if(contorMessages == 100){       
        SEDispatcher.emit('sendMessageFirebaseMulticast',messages);
        contorMessages = 0;
        messages = [];
    }

}

SEDispatcher.on('sendMessageFirebaseMulticast', function(messages){
    var dryRun = true;

    admin.messaging().sendAll(messages, dryRun)
    .then(function(response) {
        //console.log("response:",response);
        //responses = response.responses;
        //.......
     })
    .catch((error) => {
        console.log(' +++ Error sending message:', error);
    });

});

ошибка, которая иногда возникает:

+++ Ошибка отправки сообщения: {Ошибка: реализация учетных данных, предоставленная для initializeApp () через свойство «учетные данные», не смогла получить действительный токен доступа Google OAuth2 со следующей ошибкой: «Ошибка получение токена доступа: ошибка при выполнении запроса: зависание сокета. Код ошибки: ECONNRESET ". в FirebaseAppError.Error (родной) в FirebaseAppError.FirebaseError [как конструктор] (/opt/node/test/node_modules/firebase-admin/lib/utils/error.js:42:28) в FirebaseAppError.PrefixedFirebaseError [как конструктор] (/opt/node/test/node_modules/firebase-admin/lib/utils/error.js:88:28) на новом FirebaseAppError (/opt/node/test/node_modules/firebase-admin/lib/utils/error.js:122:28) по адресу /opt/node/test/node_modules/firebase-admin/lib/firebase-app.js:121:23 at process._tickCallback (internal / process / next_tick.js: 103: 7) errorInfo: {code: 'app / invalid-credential', об ошибке: «Реализация учетных данных, предоставленная для initializeApp () через свойство« учетные данные », не смогла получить действительный Google OAuth2» токен доступа со следующей ошибкой: «Ошибка при получении токена доступа: Ошибка при выполнении запроса: розетка зависла. Код ошибки: ECONNRESET ". ' }, codePrefix: 'app'}

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