iOS-Firestore中的查询无效



我想在collection中进行Firestore调用,该调用排除字段上的一些值。这是我写的代码片段

db.collection("MyCollection")
.order(by: "timestamp", descending: false)
.whereField("timestamp", isGreaterThan: localTimestamp)
.whereField("uid", notIn: [reportedUids, currentUid])
.limit(to: 3)
.getDocuments { (snapshot, error) in
if let err = error{
print(err.localizedDescription)
return
}
var modelsData = [Model]()
snapshot?.documents.forEach({ (doc) in

let dict = doc.data()
var model = Model()
model.transformModelWith(dict: dict)
modelsData.append(model)
})

let lastDocumentFetched = snapshot?.documents.last
DispatchQueue.main.async {
completion(modelsData, lastDocumentFetched!)
}
}
}

运行时我得到的错误是:

无效查询。"您有一个where筛选器,该筛选器在字段"uid"上具有不等式(notEqual、lessThan、lessTanOrEqual、greaterThan或greaterThanOrEqual),因此您还必须使用"uid"作为第一个queryOrderedBy字段,但您的第一个queryOrderedBy当前位于字段"timestamp"上。">

在线搜索它把我带到了这里,我的问题是:

如果我必须从查询中排除一些数据,我该如何处理这个问题?

错误消息表示将.whereField("uid", notIn: [reportedUids, currentUid])作为第一个筛选器。

最新更新