我来自firebase函数的推送通知代码如下:
//fetch push tokens of all admins as well to send push notification
var tokens = []
if(pushToken !== undefined && pushToken !== '')
tokens.push(pushToken)
tokens = tokens.concat(adminPushTokens)
//push tokens need to be of customer as well as all the admins in the system. fetch admin push tokens
admin.messaging().sendToDevice(tokens, pushPayload).then(
(resp) => console.log("push notification sent")
).catch(
(err) => console.error("Error sending push notification:" + JSON.stringify(err))
)
并且在15%到20%的时间内结束于
Error sending push notification:{"code":"app/network-timeout","message":"fcm.googleapis.com network timeout. Please try again."}
这对我们来说是一个大问题,而不是令人满意的表现。我们如何确保提高可靠性?
答案 0 :(得分:2)
这可能与上一个question中的问题相同:您应返回异步sendToDevice()
方法返回的promise。如果不兑现承诺,则Cloud Function将不会等待异步任务完全完成。
所以您应该这样做:
return admin.messaging().sendToDevice(tokens, pushPayload).then({});