Firestore控制台异常

时间:2018-11-01 12:56:27

标签: firebase firebase-realtime-database google-cloud-firestore

我在Firebase实时数据库中有一个小型数据库,其中包含用户添加的帖子。每次打开控制台时,每条帖子都位于正确的位置。

我正在尝试迁移到Cloud Firestore。我创建了一个脚本,用于将每个帖子对象从Firebase实时数据库复制到Cloud Firestore,并且工作正常。 问题是,当我将选项卡切换到Firestore时,不再按顺序排列帖子,而且我很难找到帖子。

如何以与Firebase和ListView中相同的方式订购帖子?

1 个答案:

答案 0 :(得分:1)

  

奇怪的Firestore控制台情况

这并不奇怪,是Firebase控制台中提供的默认排序方案(默认情况下)。

与Fireabse实时数据库ID不同,Cloud Firestore ID实际上纯粹是随机的。没有时间成分。这就是为什么(默认情况下)没有订单的原因。但是,正如弗兰克·范·普菲伦(Frank van Puffelen)在评论中提到的那样:

  

Cloud Firestore控制台通过单击文档列表上方的“过滤器”图标,支持对任何字段上的文档进行排序/过滤(自2018年6月开始)。

enter image description here

此外,如果知道文档的ID,只需在浏览器中按 CTRL + F 即可轻松找到所需的文档。我认为,这种排序方案使查找您正在寻找的文档变得相对直观。

如果要在ListView中对元素进行排序,则应将这些要求添加到查询中。查询中的顺序与您在信息中心中看到的顺序无关。

需要这些ID,以便像您这样的应用可以大规模完美运行。大规模而言,文档在控制台中的显示顺序无关紧要,因为控制台对于查看大量文档没有用。

ListView中订购帖子的一种解决方案是根据timestamp属性订购帖子。

对于Android, here ,您可以找到如何使用模型类或FieldValue.serverTimestamp()添加日期。