【问题标题】:Matching users Firestore db model匹配用户 Firestore 数据库模型
【发布时间】:2019-04-17 22:27:33
【问题描述】:

我正在开发一款 Flutter 移动应用,以帮助人们与 DIY 专家建立联系。

该应用会将需要建议的人与专家联系起来,然后让他们在一对一的消息中聊天。例如,A 需要有关管道的建议,因此应用程序将他与知道如何管道的 B 联系起来。

我的数据库模型是使用 Firestore 来存储用户详细信息和 FCM 令牌。云功能向所有专家 FCM 令牌发送通知(在非专家需要帮助时通知他们)。

到目前为止,这是我的模型:

  1. Firestore:存储 2 组用户:非专家组和专家组。
  2. 当应用程序中的非专家点击“我需要帮助!”时,将数据库“needhelp”中的非专家字段标记为 true。
  3. Firebase Cloud 功能监听变化,并将 FCM 发送到数据库中的所有专家 FCM 令牌。
  4. ??当应用程序中的一位专家点击“我可以帮忙!”时,在数据库中创建新的聊天文档??
  5. Firestore:创建新的消息文档、存储消息等

我的问题是第 4 步:当专家在客户端应用程序中点击“我可以提供帮助”时,如何在新的 1 对 1 聊天中匹配和连接专家和非专家。在点击时,专家客户端应用程序是否应该在 Firestore 的文档中设置新值?什么文件?这是什么数据库模型?

类似的应用是约会应用,例如火种。有趣的问题:Tinder Firestore 会是什么样子? :)

【问题讨论】:

  • 所以您的应用基本上需要一个数据库架构,对吧?
  • 是的,基本上是@AlexMamo。我看过你的youtube视频!!但我在上面的第 4 步找不到如何匹配用户。
  • 您可以在我的教程中找到所有问题的答案。如需一对一聊天应用,请参阅此 Firestore chat tutorial
  • @AlexMamo 我看过你们所有的视频,但没有回答我的问题。您的架构工作在您始终确切知道您将与谁联系的地方。在您的视频中:“第二个用户”/“第一个随机用户”/“第二个随机用户”。您的架构适用于普通聊天应用程序,因为始终知道谁需要连接。但是在我的应用程序中,我们永远不知道在匹配之前我们将连接哪些用户。我们不知道非专家会与谁联系。我们甚至不知道非专家是否会找到匹配项。所以我的数据库模型一定不一样。
  • 一旦您将该属性更改为可用,这意味着您认识与您聊天的人。所以基本上整个问题是减少我视频中的架构。

标签: firebase nosql flutter google-cloud-firestore google-cloud-functions


【解决方案1】:

创建类似的聊天室:chatroom1、chatroom2、chatroom 3 .....

如果用户想加入 chatroom1 应该是空的,所以他会加入这个。

第二个用户想要加入并在聊天室 1 中创建了 1 个用户,因此他加入了聊天室并开始聊天

第三个用户过来发现聊天室 1 已满(其中有 2 人),所以他加入聊天室 2 并等待其他人加入,然后模式继续...... ..

【讨论】:

    猜你喜欢
    • 2011-06-23
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多