【问题标题】:Firebase Chat Application with Social Media on Flutter在 Flutter 上使用社交媒体的 Firebase 聊天应用程序
【发布时间】:2023-01-15 07:40:04
【问题描述】:

我有一个用 Flutter 编写的社交媒体应用程序。用户可以看到彼此的配置文件并阻止/取消阻止它们。我正在使用 MySQL 来保存这些数据。现在我想使用 Firebase Firestore(或者 MongoDB)实现聊天功能。当一个用户向另一个用户发送消息时,我是否应该检查用户是否每次都从 MySQL 中阻止了另一个用户,以便用户无法发送新消息。这是聊天应用程序中的一个好习惯,还是我也应该在 Firebase 中存储“被阻止的”数据。

我深入研究了这个主题,但没有找到任何解决方案。

【问题讨论】:

    标签: mysql flutter firebase google-cloud-firestore


    【解决方案1】:

    就像当用户试图向另一个用户发送消息时,您也在收件人列表中检索值(特定用户是否被当前用户阻止),如果是这样,您当时正在检查它。

    其次,如果您希望在发送到服务器时进行检查。因此,您可以使用 firestore 事务来管理它,您可以在其中获取发件人的对象并检查发件人阻止了谁,并且您可能会抛出异常。另一件事你也可以使用 Firestore 安全规则来管理它。

    【讨论】:

      【解决方案2】:

      所以你可以像当前大多数社交媒体作品一样编码。

      简单地让用户发送消息,但在接收者上设置条件 用户端所以如果用户被接收器阻止那么它不应该显示 如果用户聊天,用户聊天列表中的聊天也不应该发送通知 被接收者阻止。

      【讨论】:

      • 当用户发送消息时,我应该每次从 REST API (MySQL) 检查“阻止状态”吗?在这种情况下,我不会减慢消息系统的速度吗?如果你说,把“块状态”也放到Firestore,数据重复是一个问题吗?
      猜你喜欢
      • 2022-12-29
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2016-10-10
      • 1970-01-01
      • 2021-09-02
      • 2017-09-30
      相关资源
      最近更新 更多