Firestore数据库在一项功能中查询不同的事物

时间:2019-04-14 04:33:02

标签: swift firebase sprite-kit google-cloud-firestore

我当前正在使用此功能来读取我的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却不起作用?如果以后需要查询某些内容,我仍然想保留查询过滤器

0 个答案:

没有答案
相关问题