如何检索所有用户令牌并将 FCM 发送给所有用户
How to retrieve all user tokens and send FCM to all
我正在尝试一次向多个用户发送 FCM。除了使用主题之外,我似乎找不到明确的答案,但我有几个条件让我很难做到这一点。是否可以从特定文档中提取所有标记(类似于将其设置为主题,但基于我的逻辑)并将该数组传递给 Cloud 函数?
我当前的代码如下,它适用于单个用户(我只发布提取令牌的部分):
return admin.firestore().doc('Seller_tokens/tokens/' + brand + '/wc').get().then(usertokensdoc =>{
const sellertokenID = usertokensdoc.get("dXufWMvOTLXUOyj8XNv9NFmsQ4x1");
const payload = {
data:{
title:'FCM - Test',
content: 'FCM - This is a test message,
},
token: sellertokenID
};
对于行:
const sellertokenID = usertokensdoc.get("dXufWMvOTLXUOyj8XNv9NFmsQ4x1");
我不想指定单个用户 ID,其中 'userid' 是文档中的字段。因此,如果可能的话,我想传递一个数组。
正如您提到的以及官方文档Send messages to multiple devices中所阐明的那样,只有两种方法可以将消息发送到多个令牌:
Firebase Cloud Messaging provides these two ways to target a message to multiple devices:
Topic messaging, which allows you to send a message to multiple devices that have opted in to a particular topic.
Device group messaging, which allows you to send a message to multiple devices that belong to a group you define.
除此之外,正如在另一个问题中提到的,没有API让您一次获得所有令牌,因此,您需要单独获得使用.
所以,总而言之,没有自动获取令牌的方法,但是一旦你获取了它们,我相信使用 Device Messaging 方法会更好对你来说,因为你可以根据你检索到的令牌定义特定的组来接收 FCM。
如果这些信息对您有帮助,请告诉我!
您可以根据自己的情况在云函数中检索token文档。遍历它们,创建一个令牌数组并将它们传递给 Firebase 消息传递,如下所示
admin.messaging.sendToDevice(令牌,有效载荷)。下面url有一个很好的例子。
我正在尝试一次向多个用户发送 FCM。除了使用主题之外,我似乎找不到明确的答案,但我有几个条件让我很难做到这一点。是否可以从特定文档中提取所有标记(类似于将其设置为主题,但基于我的逻辑)并将该数组传递给 Cloud 函数?
我当前的代码如下,它适用于单个用户(我只发布提取令牌的部分):
return admin.firestore().doc('Seller_tokens/tokens/' + brand + '/wc').get().then(usertokensdoc =>{
const sellertokenID = usertokensdoc.get("dXufWMvOTLXUOyj8XNv9NFmsQ4x1");
const payload = {
data:{
title:'FCM - Test',
content: 'FCM - This is a test message,
},
token: sellertokenID
};
对于行:
const sellertokenID = usertokensdoc.get("dXufWMvOTLXUOyj8XNv9NFmsQ4x1");
我不想指定单个用户 ID,其中 'userid' 是文档中的字段。因此,如果可能的话,我想传递一个数组。
正如您提到的以及官方文档Send messages to multiple devices中所阐明的那样,只有两种方法可以将消息发送到多个令牌:
Firebase Cloud Messaging provides these two ways to target a message to multiple devices:
Topic messaging, which allows you to send a message to multiple devices that have opted in to a particular topic.
Device group messaging, which allows you to send a message to multiple devices that belong to a group you define.
除此之外,正如在另一个问题
所以,总而言之,没有自动获取令牌的方法,但是一旦你获取了它们,我相信使用 Device Messaging 方法会更好对你来说,因为你可以根据你检索到的令牌定义特定的组来接收 FCM。
如果这些信息对您有帮助,请告诉我!
您可以根据自己的情况在云函数中检索token文档。遍历它们,创建一个令牌数组并将它们传递给 Firebase 消息传递,如下所示 admin.messaging.sendToDevice(令牌,有效载荷)。下面url有一个很好的例子。