【问题标题】:Firestore order a collection based on likesFirestore 根据喜欢订购集合
【发布时间】:2018-06-06 12:54:49
【问题描述】:

我的ListView帖子可以按点赞排序吗(最喜欢的帖子必须显示在上面)?

我已经知道如何根据时间戳对其进行排序。但正如你所见,likes 是 Posts 中的一个集合。

时间戳代码:

Query firstQuery = firebaseFirestore.collection("Posts").orderBy("timestamp", Query.Direction.DESCENDING).limit(3);

【问题讨论】:

    标签: java android firebase listview google-cloud-firestore


    【解决方案1】:

    如果您已经知道如何根据时间戳进行排序,那么您应该以同样的方式进行按赞排序。所以要解决这个问题,你需要在每个帖子下添加一个名为likes的新属性,并使用以下代码行查询:

    Query firstQuery = firebaseFirestore.collection("Posts").orderBy("likes", Query.Direction.DESCENDING).limit(3);
    

    要更新likes 属性,我建议您使用Firestore Transactions

    您可以在集合中count the number of documents,但在您的情况下,最好的选择是添加一个新属性,如上所述。

    【讨论】:

    • 是的,可以。可以添加监听器获取点赞数,写在对应的帖子下。但 il 将更难维护。在我的解决方案中,有一个属性将被更新,仅此而已。选择哪种解决方案取决于您。
    • 您认为我的回答对您有帮助吗?
    • 感谢您的有用回答。我了解并想使用事务方法,但我真的不知道在我的文件中实现它的正确方法。你能帮我解决这个问题吗?
    • 是的,当然。首先,我建议查看文档并尝试一下。如果您在特定步骤中遇到困难,请展示您的尝试,为了遵守本社区的规则,请发布另一个新问题,以便我和其他用户可以帮助您。
    • 另请参阅有关维护计数器的 Firestore 文档页面:firebase.google.com/docs/firestore/solutions/counters
    猜你喜欢
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    相关资源
    最近更新 更多