在 Flutter 应用上向用户发送独特的 Firebase 推送通知
Posted
技术标签:
【中文标题】在 Flutter 应用上向用户发送独特的 Firebase 推送通知【英文标题】:Send unique Firebase push notifications to users on Flutter app 【发布时间】:2019-12-29 20:27:05 【问题描述】:我有一个 Flutter 应用程序,它连接到基于 Laravel 构建的数据库。本质上,我们的用户将拥有个人资料,他们的个人资料将与某些类型的帖子相匹配。每当添加新帖子时,我们希望能够找到与该帖子匹配的所有用户,并向他们发送推送通知,告知他们已与新添加的帖子匹配。
理论上,我正在寻找一种很好的方法来做到这一点,因为我现在有点不知所措,对 Firebase 和推送通知没有太多经验。
【问题讨论】:
【参考方案1】:要向您的用户订阅的相关主题发送推送通知:
final FirebaseMessaging _fcm = FirebaseMessaging();
...
FlatButton(
child: Text('I like puppies'),
onPressed: () => _fcm.subscribeToTopic('puppies');,
),
FlatButton(
child: Text('I hate puppies'),
onPressed: () => _fcm.unsubscribeFromTopic('puppies');,
),
在后端(NodeJS):
export const sendToTopic = functions.firestore.document('puppies/puppyId').onCreate(async snapshot =>
const puppy = snapshot.data();
const payload: admin.messaging.MessagingPayload =
notification:
title: 'New Puppy!',
body: `$puppy.name is ready for adoption`,
icon: 'your-icon-url',
click_action: 'FLUTTER_NOTIFICATION_CLICK' // required only for onResume or onLaunch callbacks
;
return fcm.sendToTopic('puppies', payload););
有一个很好的教程如何做到这一点:link
【讨论】:
您好,感谢您的回复!如果在我的情况下,用户有更具体的标准来匹配帖子怎么办?我们以工作为例。用户选择的标准不止一个,可以帮助他们匹配工作。这不可能吗? 现在很难说。也许你的订阅应该像“post_economics”、“post_business”等等+后端有很多条件根据这些类型发送或不发送推送通知【参考方案2】:我没有丰富的后端经验,但我可以提供两种方法。
我们希望能够找到与该帖子匹配的所有用户
A.您应该为每个帐户存储 FCM 令牌,并将用户与相关帖子绑定。当您发现帖子匹配时。使用firebase-admin 发送通知。您应该拥有与数据库中的 FCM 令牌具有一对一关系的用户。
B.更高级的,你可以将一堆相关用户注册到某个topic,然后作为广播发送一次。
再次,我不认为我的方法是使用 FCM 的最佳实践,如果有任何错误,请发表评论或回答!
【讨论】:
以上是关于在 Flutter 应用上向用户发送独特的 Firebase 推送通知的主要内容,如果未能解决你的问题,请参考以下文章