使用 firestore 检查用户读取数据的天气情况
check weather the user readed data or not in flutter using firestore
我正在使用 firestore 在 flutter 中开发聊天应用程序,用户成功地一对一聊天。但我还想向用户发送有人发送 him/her 消息的通知。为此,我决定使用 firebase 的云消息服务,但我如何检查用户是否阅读了消息。
Cloud Firestore 中没有内置任何内容来跟踪哪个用户已经阅读了特定文档。
我知道的两种最常见的方法是:
跟踪每个单独的消息和每个单独的用户是否已阅读,因此通过在每个消息文档中保留用户 ID 列表。虽然这可能会存储大量额外数据,但它是 use-case.
的最直接映射
虽然在大多数聊天应用程序中,跟踪每个用户已阅读的消息是作为“到此为止”完成的。因此,如果用户在某个特定时间之前阅读了所有消息,则假设他们也已经阅读了之前的所有消息 one/moment。
对于此模型,您可以只为每个用户保留一个文档 ID 或时间戳(即 readUpTo
),而不必为每个已阅读消息的用户标记每条消息。在您的 UI 中,您然后根据与 readUpTo
.
的时间戳相比的消息 ID/timestamp 来确定是否将每条消息显示为未读
我正在使用 firestore 在 flutter 中开发聊天应用程序,用户成功地一对一聊天。但我还想向用户发送有人发送 him/her 消息的通知。为此,我决定使用 firebase 的云消息服务,但我如何检查用户是否阅读了消息。
Cloud Firestore 中没有内置任何内容来跟踪哪个用户已经阅读了特定文档。
我知道的两种最常见的方法是:
跟踪每个单独的消息和每个单独的用户是否已阅读,因此通过在每个消息文档中保留用户 ID 列表。虽然这可能会存储大量额外数据,但它是 use-case.
的最直接映射虽然在大多数聊天应用程序中,跟踪每个用户已阅读的消息是作为“到此为止”完成的。因此,如果用户在某个特定时间之前阅读了所有消息,则假设他们也已经阅读了之前的所有消息 one/moment。
对于此模型,您可以只为每个用户保留一个文档 ID 或时间戳(即
的时间戳相比的消息 ID/timestamp 来确定是否将每条消息显示为未读readUpTo
),而不必为每个已阅读消息的用户标记每条消息。在您的 UI 中,您然后根据与readUpTo
.