我当前正在使用此功能来读取我的Firestore数据库中的文档
enum SparkReferenceName: String {
case users
case leaderboards
}
private func reference(to collectionReference: SparkReferenceName) -> CollectionReference {
return Firestore.firestore().collection(collectionReference.rawValue)
}
func read<T: Decodable>(from collectionReference: SparkReferenceName, returning objectType: T.Type, completion: @escaping ([T]) -> Void) {
reference(to: collectionReference).whereField("region", isEqualTo:"Russia").addSnapshotListener { (snapshot, _) in
guard let snapshot = snapshot else { return }
do {
var objects = [T]()
for document in snapshot.documents {
let object = try document.decode(as: objectType.self)
objects.append(object)
}
completion(objects)
} catch {
print(error)
}
}
}
我的问题是有时我想过滤某个字段等于某字段的搜索,或者过滤一个大于某个特定数字的字段,或者有时我根本不想过滤搜索,只是找回它给我的一切。
所以代码中的这一行是我使用查询过滤结果的地方:
reference(to: collectionReference).whereField("region", isEqualTo:"Russia").addSnapshotListener {
如何调用函数时不使用查询过滤器,因为我尝试在参数中使用nil却不起作用?如果以后需要查询某些内容,我仍然想保留查询过滤器