【发布时间】:2019-04-17 22:27:33
【问题描述】:
我正在开发一款 Flutter 移动应用,以帮助人们与 DIY 专家建立联系。
该应用会将需要建议的人与专家联系起来,然后让他们在一对一的消息中聊天。例如,A 需要有关管道的建议,因此应用程序将他与知道如何管道的 B 联系起来。
我的数据库模型是使用 Firestore 来存储用户详细信息和 FCM 令牌。云功能向所有专家 FCM 令牌发送通知(在非专家需要帮助时通知他们)。
到目前为止,这是我的模型:
- Firestore:存储 2 组用户:非专家组和专家组。
- 当应用程序中的非专家点击“我需要帮助!”时,将数据库“needhelp”中的非专家字段标记为 true。
- Firebase Cloud 功能监听变化,并将 FCM 发送到数据库中的所有专家 FCM 令牌。
- ??当应用程序中的一位专家点击“我可以帮忙!”时,在数据库中创建新的聊天文档??
- Firestore:创建新的消息文档、存储消息等
我的问题是第 4 步:当专家在客户端应用程序中点击“我可以提供帮助”时,如何在新的 1 对 1 聊天中匹配和连接专家和非专家。在点击时,专家客户端应用程序是否应该在 Firestore 的文档中设置新值?什么文件?这是什么数据库模型?
类似的应用是约会应用,例如火种。有趣的问题:Tinder Firestore 会是什么样子? :)
【问题讨论】:
-
所以您的应用基本上需要一个数据库架构,对吧?
-
是的,基本上是@AlexMamo。我看过你的youtube视频!!但我在上面的第 4 步找不到如何匹配用户。
-
您可以在我的教程中找到所有问题的答案。如需一对一聊天应用,请参阅此 Firestore chat tutorial。
-
@AlexMamo 我看过你们所有的视频,但没有回答我的问题。您的架构工作在您始终确切知道您将与谁联系的地方。在您的视频中:“第二个用户”/“第一个随机用户”/“第二个随机用户”。您的架构适用于普通聊天应用程序,因为始终知道谁需要连接。但是在我的应用程序中,我们永远不知道在匹配之前我们将连接哪些用户。我们不知道非专家会与谁联系。我们甚至不知道非专家是否会找到匹配项。所以我的数据库模型一定不一样。
-
一旦您将该属性更改为可用,这意味着您认识与您聊天的人。所以基本上整个问题是减少我视频中的架构。
标签: firebase nosql flutter google-cloud-firestore google-cloud-functions