使用firebase-admin

时间:2019-05-09 07:51:33

标签: node.js firebase-admin

我将firebase-admin用于nodejs(版本7.3.0)发送推送 通知。对于使用sendAll方法发送的40k条不同的消息,服务器通常会收到此错误:

”通过“凭证”提供给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);
    });

});

有时会发生的错误:

  

+++发送消息时出错:{错误:通过“ credential”属性提供给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       在process._tickCallback(内部/进程/next_tick.js:103:7)处errorInfo:{代码:'app / invalid-credential',        消息:“通过“ credential”属性提供给initializeApp()的凭据实现无法获取有效的Google OAuth2   具有以下错误的访问令牌:“获取访问令牌时出错:   发出请求时出错:套接字挂起。错误代码:ECONNRESET”。   },codePrefix:“ app”}

0 个答案:

没有答案