我使用Firebase Cloud函数来监听Firestore的更改并相应地发送推送通知。然而,这些通知非常缓慢。它们到达最终用户时几乎延迟了一分钟。我正在创建的聊天应用程序不是很好,应该是即时的。
这是来自云功能的代码,用于监听和发送通知:
admin.firestore()
.collection('users')
.where('id', '==', idFrom)
.get()
.then(querySnapshot2 => {
querySnapshot2.forEach(userFrom => {
console.log(`Found user from: ${userFrom.data().nickname}`)
const payload = {
notification: {
title: `You have a message from "${userFrom.data().nickname}"`,
body: contentMessage,
priority: 'high',
badge: '1',
sound: 'mytone'
}
}
// push to the target device
admin
.messaging()
.sendToDevice(userTo.data().pushToken, payload)
.then(response => {
console.log('Successfully sent message:', response)
})
.catch(error => {
console.log('Error sending message:', error)
})
})
})
有没有办法改善这一点?
延迟的原因是FCM发送推送通知的间隔,如本文所述。无法在客户端解决此行为。