相关疑难解决方法(0)

在 Android 和 Java 上复制 Swift 完成处理程序

多年后,我正在尝试使用 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)

java android ios completionhandler google-cloud-firestore

5
推荐指数
2
解决办法
2609
查看次数