使用firebase云功能的批量通知反应原生



我是firebase和云功能通知的新手,我想知道如果我向用户发送100000个通知,即使使用由firebase团队管理并具有自动缩放功能的CF,是否也有可能使我的应用程序崩溃?

我正在做这样的事情:

  1. 应用程序上有人发帖
  2. 在我的CF上有一个触发器,可以为用户发送通知
  3. 然后,所有用户(100000(都收到了通知

Firebase基础设施是否有队列或作业管理来避免这种情况,或者我能像婴儿一样睡得好吗?

这里是我的代码片段:

exports.newPost = functions.database.ref("post/{postId}")
.onUpdate((change, context) => {
const before = change.before.val();
const after = change.after.val();
if (before.status === after.status) {
return null;
}
const ref = admin.database().ref(`tokens/`);
return ref.orderByKey().once("value", async snapshot => {
const fcmTokens = snapshotToArray(snapshot);
admin.messaging()
.sendMulticast({
data: {},
tokens: fcmTokens,
notification: {
title: 'Title',
body: 'Body',
},
android: {
notification: {
image: imageUrl,
},
},
apns: {
payload: {
aps: {
"mutable-content": 1,
},
},
fcm_options: {
image: imageUrl,
},
},
})
.then(resp => console.log(resp))
.catch(e => console.log(e))
})
})

我的问题是:我的代码可能有问题吗?

本质上没有什么"坏的";用你在这里显示的代码。FCM每天定期发送数十亿条通知。其中最困难的部分甚至不是由你在这里显示的代码处理的——它是由FCM服务器处理的。这里的代码只是告诉服务器发送这些消息,这需要极低的工作量。

我在这里看到的唯一问题是令牌的限制,这可能会导致无法发送通知。

您使用的sendMulticast每次调用最多可接受500个FCM令牌。

https://firebase.google.com/docs/cloud-messaging/send-message

相关内容

  • 没有找到相关文章

最新更新