【发布时间】:2019-11-25 23:21:00
【问题描述】:
使用 js 编写的谷歌云功能发送推送通知给我错误代码:ECONNRESET 错误。我不确定我是否正确处理了并发,但它偶尔会起作用,但大多数情况下我在返回每个并发请求时都会收到此错误。
几乎尝试了所有方法,我确实收到了有关嵌套承诺的警告,但不明白我还能怎么做。代码真的很简单。如果有哪位专家可以给我一些指点,我将永远感激不尽。
var deviceRef = admin.firestore().collection('devices');
var query = deviceRef.get()
.then(snapshot => {
snapshot.forEach(doc => {
var FCM = doc.data().FCM
if( FCM !== undefined ) {
console.log(doc.id, '=>', FCM);
admin.messaging().sendToDevice(FCM, payload);
}
});
return;
}).catch(err => {
console.log('Error getting documents', err);
});
return query;
在上面的代码中,“设备”是设备唯一标识符的简单列表,并且有一个值是 FCM 令牌。该代码似乎触发了所有请求,它只是给我 ECONRESET 错误的返回值。如果我将其更改为
if(FCM === my_fcm_token) 相反,代码工作正常,因此它与发送到多个设备时的扩展有关,就好像某些事情超时或没有正确重置一样。
如果可以的话,请专家帮忙,我真的需要这个才能让我的应用程序正常运行。还有一些代码,但基本上只是设置有效负载,正如我所说的那样,它适用于一个设备,而不是多个设备。
欢迎任何建议我希望有人有一些想法。
非常感谢提前
【问题讨论】:
标签: node.js firebase google-app-engine firebase-realtime-database