【问题标题】:In swift, how to make function to return querysnapshot from Firebase?快速,如何制作从 Firebase 返回查询快照的功能?
【发布时间】:2018-05-22 01:59:16
【问题描述】:

在 swift 中,如何在此代码中返回 querySnapshot

  func read(){
    reference(to: .users).getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                print("\(document.documentID) => \(document.data())")

            }
        }

    }
}

上面的代码从 firebase 读取数据并在 else 语句中打印数据。我想从视图控制器调用read() 函数,read() 应该返回querySnaphot!.documents。如果我这样做,我该怎么做:

func read() -> QuerySnaphot{
...
return querySnapshot!.documents

它给了我一个错误,它返回一个非 void 值

【问题讨论】:

    标签: swift firebase google-cloud-firestore


    【解决方案1】:

    void 函数中出现意外的非 void 返回值

    您不能在 clouser 内返回值。您可以使用完成处理程序来代替它。

     func read(_ completion:@escaping(_ querySnapshot:[QueryDocumentSnapshot])->Void){
       reference(to: .users).getDocuments() { (querySnapshot, err) in
            if let err = err {
                print("Error getting documents: \(err)")
            } else {
    
                if let documents = querySnapshot?.documents{
                    completion(documents)
                }
            }
    
        }
    

    用法:

    read { (documents) in
    
        for document in documents{
    
              print("\(document.documentID) => \(document.data())")
         }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 2018-11-26
      • 2021-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2021-11-23
      • 2019-07-28
      相关资源
      最近更新 更多