Я использую 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'}