use*_*871 10 firebase swift google-cloud-firestore
我一直在试图找出一种方法来查询文档列表,其中我在一个字段上有一个范围过滤器并按另一个字段排序,这当然是不可能的,请参阅我的另一个问题:按时间戳排序,范围过滤器在不同的现场 Swift Firestore
但是是否可以将带有时间戳的文档保存为 id,然后默认进行排序?或者可能对 ID 进行硬编码,然后检索上次创建的文档 ID 并将 id 增加 1 以上传下一篇文章?
这显示了文档在集合中的排序方式
任何想法如何存储文档,以便它们按在集合中创建的顺序进行排序?
Rya*_*lor 19
默认情况下,它将按文档 ID(升序)在 Swift 中排序。
您可以使用.order(by: '__id__')但更好/记录的方法是使用 FieldPath documentID() 我真的不了解 Swift 但我认为它类似于...
.order(by: FirebaseFirestore.FieldPath.documentID())
Run Code Online (Sandbox Code Playgroud)
JavaScript 也有一个内部变量,它只返回__id__.
.orderBy(firebase.firestore.FieldPath.documentId())
Run Code Online (Sandbox Code Playgroud)
有趣的是,它__name__也可以工作,但这对整个路径进行排序,包括集合名称(当然还有 id)。
Dou*_*son -2
Firebase 控制台中显示的文档顺序大多与使用 Firestore 的代码的功能无关。该控制台仅用于浏览数据,如果您知道文档的 ID,这种排序方案可以让您相对直观地找到您可能正在查找的文档。您无法在控制台中更改此排序顺序。
您的代码显然会有其他要求,并且这些要求应该编码到您的查询中,而不考虑您在仪表板中看到的任何排序顺序。如果您希望对文档进行基于时间的排序,则必须在文档中存储某种时间戳字段,并使用它进行排序。我不建议使用时间戳作为文档的 ID,因为这可能会在将来给您带来问题。
| 归档时间: |
|
| 查看次数: |
16855 次 |
| 最近记录: |