如何只显示一次 Firebase 数据?
Posted
技术标签:
【中文标题】如何只显示一次 Firebase 数据?【英文标题】:How to show Firebase data only once? 【发布时间】:2020-08-25 18:00:21 【问题描述】:我正在开发一个使用 Firebase 实时数据库的 android 应用程序。 这个应用程序与功能有限的社交媒体应用程序非常相似。 该应用程序将向用户显示包含文本数据的帖子。 我遇到了两个问题,我在 Pagination 的帮助下解决了第一个问题,但无法解决第二个问题。 问题是如何确定帖子是否已被其他用户看到,然后不再显示。 像其他社交媒体平台一样 例如 Quora,每次打开应用程序时 Quora 都会显示不同的答案。 我是否需要重新映射我的数据才能获得此功能? 我的用户对象和帖子对象看起来像这样。
User
Name;
Id;
Post;
Post
dateCreated;
data;
userId;
我的数据库树结构看起来像这样
ROOT
/ \
POST Users
我将帖子的副本保存在 ROOT 的子节点中,即 POST 以及每个用户节点中,以获取用户发布的帖子。 PS:对不起英语不好。
【问题讨论】:
【参考方案1】:如果你愿意
1- 显示尚未查看的帖子,您可以过滤帖子,例如 num_reads < 3
。每次用户看到帖子时,num_reads
都会增加。
2- 显示用户自己尚未阅读的帖子。在这种情况下,最好创建一个集合user_post_read
,它将是多对多的(即链接用户到帖子阅读)。获取user_post_read
中当前用户没有条目的所有帖子
【讨论】:
你能详细说明一下吗。我没听懂。 @timph 你想做什么?显示尚未查看的帖子(来自任何人),或显示当前用户尚未查看的帖子? 后者。我只想像 instagram 搜索提要那样显示一次。或约会应用程序的工作方式。他们只发帖一次。我怎样才能做到这一点 AFAIK,对于 firebase,创建一个集合来保存每个用户是否阅读了每条消息。添加新消息时,将消息 id 添加到该集合中,每个用户都尚未阅读。这会给你很大的速度,但也需要很大的空间。如果您不关心速度但关心空间,则可以将用户已阅读的消息 ID 存储在他的记录中。然后,您搜索未添加到他已阅读的用户消息中的消息 我还是没明白你的意思 假设有 10 个用户,其中一个从现在开始发布帖子,我该如何跟踪帖子以及如何知道该帖子不会被少数人看到,以便我可以展示给他们。以上是关于如何只显示一次 Firebase 数据?的主要内容,如果未能解决你的问题,请参考以下文章
修复更新后显示错误的 android studio Firebase 广告库
使用 nativescript-plugin-firebase 添加带有查询的事件侦听器