FCM从主题退订特定令牌

时间:2019-12-08 15:03:08

标签: flutter firebase-cloud-messaging

我现在面临的问题是,我有FCM主题,并且该主题有很多订阅者,我希望管理员将用户从主题中删除,而不是该用户自己取消订阅。

2 个答案:

答案 0 :(得分:1)

如果您拥有该用户的(注册/实例ID)令牌,则可以use the Admin SDK to unsubscribe them。请注意,必须在受信任的环境中使用Admin SDK,例如开发计算机,您控制的服务器或Cloud Functions。

Node.jsJavaPythonGo.NET的管理SDK中提供了用于从主题退订令牌的API。

答案 1 :(得分:1)

您可以使用firebase-admin。您只需要将用户的fcm令牌放入数组中,然后将您想要的用户令牌数组传入

// These registration tokens come from the client FCM SDKs.
var registrationTokens = [
  'YOUR_REGISTRATION_TOKEN_1',
  // ...
  'YOUR_REGISTRATION_TOKEN_n'
];

// Unsubscribe the devices corresponding to the registration tokens from
// the topic.
admin.messaging().unsubscribeFromTopic(registrationTokens, topic)
  .then(function(response) {
    // See the MessagingTopicManagementResponse reference documentation
    // for the contents of response.
    console.log('Successfully unsubscribed from topic:', response);
  })
  .catch(function(error) {
    console.log('Error unsubscribing from topic:', error);
  });

其中registrationTokens是用户令牌,而topic只是您要从中取消用户身份的主题的String。

签出firebase documentation below on the topi

我希望这会有所帮助。如果您仍然陷于困境,请告诉我。