gpt4 book ai didi

Flutter 中特定设备的 Firebase 消息通知

转载 作者:行者123 更新时间:2023-12-03 03:15:15 24 4
gpt4 key购买 nike

我正在开发一个 flutter 应用程序,其中在我们的自定义服务器上实现了许多服务器请求,包括登录/注册。但是,我们决定使用 Firebase Cloud Messaging 进行通知。例如,应用程序中包含聊天功能。

在端到端消息传递期间,当消息发布到我们的服务器时,用户应该会在其特定设备上收到通知。我已经成功实现并配置了firebase在应用程序中,可以从控制台发送消息,但我需要让它在特定设备上工作。

// Replace with server token from firebase console settings.
final String serverToken = '<Server-Token>';
final FirebaseMessaging firebaseMessaging = FirebaseMessaging();

Future<Map<String, dynamic>> sendAndRetrieveMessage() async {
await firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true, provisional: false),
);

await http.post(
'https://fcm.googleapis.com/fcm/send',
headers: <String, String>{
'Content-Type': 'application/json',
'Authorization': 'key=$serverToken',
},
body: jsonEncode(
<String, dynamic>{
'notification': <String, dynamic>{
'body': 'this is a body',
'title': 'this is a title'
},
'priority': 'high',
'data': <String, dynamic>{
'click_action': 'FLUTTER_NOTIFICATION_CLICK',
'id': '1',
'status': 'done'
},
'to': await firebaseMessaging.getToken(),
},
),
);

这是在 flutter 中发送消息的记录方式。但是,这将向所有用户而不是单个用户发送通知。那么,我如何定位特定用户?

最佳答案

我已经阅读了您想要实现的一些实现,我想您应该遵循以下步骤:

  • 为 Flutter 安装 Firebase Cloud Messaging (FCM)(我看到你已经完成了)
  • 通过调用 FCM 提供的“getToken”方法获取设备 firebase 消息 token
  • 当用户登录 Firebase Cloud Firestore 的文档以将此设备 token 与用户关联时保存此 token (或为用户创建一组 token ,以便每个用户可以拥有多个设备
  • 在您的数据库上发生消息传递时进行监控。当它发生时,收集目标用户,获取与该用户关联的 token 并将一个 FCM 发送到该特定设备 ID。对于这一点,我建议您使用 Firebase Cloud Functions,尽管这可能会导致服务器之间的所有数据重复(例如:您的服务器的用户名带有一些 id,并且相同的 id 在 Firestore 内的某些 noSQL 文档中“存在”)

  • 希望能帮助到你。我不提供任何代码,因为我相信这不是您要搜索的内容。

    关于Flutter 中特定设备的 Firebase 消息通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60690200/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com