Firebase 聊天 - 通知其他用户

问题描述 投票:0回答:3

我目前正在使用 Firebase 构建应用程序,并决定也实现聊天功能。

我能够将 JSQMessagesVC 用作 GUI,并使 Firebase 聊天方面也能正常工作(通过组合 2 个 UID 创建聊天室,例如:/123_456)。但是,如果其他用户收到消息,我不知道如何通知他们。 (如果用户123打开聊天室123_456并在其中发送消息,我如何通知用户456他们已收到消息?)

感谢您的帮助!

swift firebase chat
3个回答
0
投票

您的问题与设计数据库更相关。如果要实现聊天功能,您需要重新考虑您的数据库结构。一切都与数据库结构有关,因为 Firebase 不会为您提供任何触发器,因此您可以在其他节点(即数据库表)上使用您所在节点中的主要操作执行某些操作。

虽然您可能已经阅读了所有这些教程,但无论如何您都可以再看一遍结构化数据

这是一个很好的聊天示例,它可能对您的情况有所帮助。虽然它指的是群聊。为此,您可能会查看数据库的结构。

基本上,当有人打开房间与其他人聊天时,您需要从客户端在不同的节点中放置一些额外的动作。

哦,这是另一个SO Answer你应该看看。


0
投票

我有同样的问题,我通过放置一个额外的节点解决了这个问题,每个用户都有多个聊天室。在聊天室中放置一个观察者(在下面的例子中是“0888a5dc-fe8d-4498-aa69-f9dd1361fe54”),带有计数器、描述和时间戳。每条新消息、更新计数器和最后一条消息等见下文:

 "Messages" : {
"0888a5dc-fe8d-4498-aa69-f9dd1361fe54" : {
  "0888a5dc-fe8d-4498-aa69-f9dd1361fe5451879163-8b35-452b-9872-a8cb4c84a6ce" : {
    "counter" : 2,
    "description" : "Breta",
    "lastMessage" : “cool”,
    "lastUser" : "51879163-8b35-452b-9872-a8cb4c84a6ce",
    "messageType" : "txt",
    "sortTimestamp" : -1.459518501758476E9,
    "updatedAction" : 1.459518501758468E9,
    "userId" : "51879163-8b35-452b-9872-a8cb4c84a6ce"
  },
  "0888a5dc-fe8d-4498-aa69-f9dd1361fe547bfe8604-58ad-4d18-a528-601b76dd2206" : {
    "counter" : 0,
    "description" : "Romeo",
    "lastMessage" : “yep”,
    "lastUser" : "0888a5dc-fe8d-4498-aa69-f9dd1361fe54",
    "messageType" : "txt",
    "sortTimestamp" : -1.459527387138615E9,
    "updatedAction" : 1.459527387138613E9,
    "userId" : "7bfe8604-58ad-4d18-a528-601b76dd2206"
  }
}

0
投票

很简单,

  1. 在应用中添加 firebase 云消息 SDK
  2. 在 firebase 控制台中启用云消息传递
  3. 在 gradle 中添加 volley 库
  4. 创建一个 firebase 消息传递实例类
  5. 然后是FCMnotificationsender类,如果你不知道如何创建它

看这个Stepbystepguide

© www.soinside.com 2019 - 2024. All rights reserved.