多年后,我正在尝试使用 Firebase Firestore 开发 Android 应用程序。我基本上是在尝试复制这个 Swift 函数:
func getCategories(onCompletion completionBlock: @escaping (_ categories: [Category]?, _ error: Error?) -> Void) {
firestore.collection("cats").getDocuments { (snap, error) in
guard let snap = snap else {
completionBlock(nil, error ?? anUnknownError)
return
}
var categories: [Category] = []
for document in snap.documents {
let cat = Category.init(data: document.data())
categories.append(cat)
}
completionBlock(categories, nil)
}
}
Run Code Online (Sandbox Code Playgroud)
但是我不知道 swift 的块的等价物是什么,甚至不知道它是否存在。
我检查了 Firebase 源代码。Query.get()返回Task<QuerySnapshot>所以我试图返回一个Task<List<Category>>没有运气。
任何帮助?谢谢你。
编辑:添加了 Android 代码以阐明我正在尝试做什么。
public class FirestoreService { …Run Code Online (Sandbox Code Playgroud)