Firebase 高效地存储和检索喜欢的内容
在我的Firebase数据库中,我有帖子,然后经过身份验证的用户可以“喜欢”帖子。我如何才能有效地获得一个帖子收到的赞数。我知道使用MongoDB我可以将用户id添加/删除到列表中,然后使用MongoDB函数快速获取其长度,并将其设置为相同的数量,但我不知道如何使用Firebase做到这一点。我还可以将其添加/删除到列表中,并增加一个likeCount变量,但这似乎会导致并发性问题,除非Firebase有相应的函数。我可以调用哪些函数来最好地处理这个问题并很好地扩展?提前谢谢 你可以做两件事: 1) 创建一个投票节点,UID作为键和一个值来汇总所有投票Firebase 高效地存储和检索喜欢的内容,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,在我的Firebase数据库中,我有帖子,然后经过身份验证的用户可以“喜欢”帖子。我如何才能有效地获得一个帖子收到的赞数。我知道使用MongoDB我可以将用户id添加/删除到列表中,然后使用MongoDB函数快速获取其长度,并将其设置为相同的数量,但我不知道如何使用Firebase做到这一点。我还可以将其添加/删除到列表中,并增加一个likeCount变量,但这似乎会导致并发性问题,除非Firebase有相应的函数。我可以调用哪些函数来最好地处理这个问题并很好地扩展?提前谢谢 你可以做两件事:
post:{
//All the data
likes:{
$user_1:1,
$user_2:-1,
}
}
然后只需要得到一个单值事件或一个值事件(取决于您是否希望跟踪更改),并将所有子项相加
2) 您可以使用事务块,只需保存一个值并根据投票增加或减少它
(这里有一个链接,您可以在其中找到android、iOS或java的事务)
这实际上取决于你想存储多少信息,以及用户在投票后可以做什么
我建议两者都使用,以保持用户喜欢的灵活性(比如Facebook),这样他就可以不喜欢某些东西,并使用带有数字的事务来保持其可伸缩性。。因此,如果一篇文章获得1000000个喜欢,你不必在每次有人加载该文章时计算1000000个喜欢非常感谢!我真不敢相信我在看文件的时候错过了这个!Firebase最近引入了云功能。我想我可以帮你。检查
post:{
//All the data,
likes:2,
}