可以同时将Firebase Cloud Messaging发送给50K-100K用户?

问题描述

我可能需要使用Firebase Cloud Messaging向大约50K-100K用户使用云功能发送推送通知

这是我的云功能上发送FCM的代码

const sendFCMPromises = []

devicesQuerySnapshot.docs.forEach( deviceSnapshot => {

       // get user device FCM token
       const userFCMToken = deviceSnapshot.data().fcmToken

       const payload = {
          data: {
              body: body,title: title,type: type,imagePath: imagePath
          }
       }

       const p = admin.messaging().sendToDevice(userFCMToken,payload)
       sendFCMPromises.push(p)
            
})

return await Promise.all(sendFCMPromises)

我尝试阅读FCM Throttling and Scalingcloud function limits

我只关注这两个限制

  1. 从云功能开始的最大功能持续时间540 s
  2. 从FCM到单个设备的最大速率为240条消息/分钟和5,000条消息/小时。

我相信我不会达到那些极限。但是我是Firebase的新手,我担心自己会达到一些尚未被考虑的极限。

还有其他限制会使该操作失败吗?

解决方法

简短的回答,是的,您可以做到。您可以发送的邮件数量将仅受已经引用的限制。

还有其他限制,但是在您链接的文档中有规定,并且不会直接影响您的用例,除了maybe之外:

每个项目的主题订阅添加/删除速率限制为3,000 QPS。

如果您正在使用主题。

作为一般建议,开始了解您的应用程序的行为并进行必要的调整,尽管计划很重要,但agile也很重要,例如,如果您即将达到配额或硬限制会改变您传递消息的方式以减少影响。