此代码无法一起使用。我必须查询:.whereField("Privacy", isEqualTo: "Public")
或:
let myQuery: Query
if lastDocument == nil {
myQuery = firestoreRef.order(by: "Date", descending: false).limit(to: 8)
} else {
myQuery = firestoreRef.start(afterDocument: lastDocument).limit(to: 5) }
这不能让我一起查询它们,而且我不明白为什么,是否有解决方法?我基本上是对我的数据进行分页,以便在用户到达屏幕底部时调用此函数。如果此函数之前运行过一次(它在“ ViewDidLoad”中),则它将获取最后一个文档。因此,我的下一个查询将在“ lastDocument”之后开始。但是,最主要的是,它不允许我同时查询这两个^^^短语。
var lastDocument: Documentsnapshot!
func loadPosts () {
let firestoreRef = Firestore.firestore().collection("Posts")
.whereField("Date", isGreaterThanOrEqualTo: Date() - 10800)
.whereField("Privacy", isEqualTo: "Public")
fetchingmore = true
let myQuery: Query
if lastDocument == nil {
myQuery = firestoreRef.order(by: "Date", descending: false).limit(to: 8)
} else {
myQuery = firestoreRef.start(afterDocument: lastDocument).limit(to: 5) }
myQuery.getDocuments { (snapshot, error) in
.
.
.
etc... }
答案 0 :(得分:1)
我知道了,这是因为我使用的是.getDocuments
调用而不是.addsnapshotListener
调用。但是,如果有人知道我如何在保持.getDocuments
通话的同时完成相同的事情,那我就是开放的耳朵!