从Firebase获取显示的名称

我正在尝试显示Firebase数据库的内容。我知道我可以正确读取它们,因为可以在读取时打印它们。问题是当我调用在屏幕上显示它们的方法时,它们“不在范围内”。

我知道这意味着方法被同时调用,因此数组为空。我已经尝试过“ Sleep()”方法,但无法正常工作。

 //arrays of names and descriptions
    var Names:[String] = []
    var Desctiptions: [String] = []

初始方法

 override func viewDidLoad() {

        super.viewDidLoad()


        getRestauraunt()


        //create slides
        scrollView.delegate = self
        slides = createSlides()
        setupSlideScrollView(slides: slides)
}
  func getRestauraunt(){

        let db = Firestore.firestore()
        db.collection("Test").getDocuments { (snapshot,err) in
            if let err = err {
                print("Error getting documents: \(err)")
            } else {
                for document in snapshot!.documents {
                    let name = document.get("Name") as! String
                    let description = document.get("Description") as! String

                    //print("Names: ",name," Description: ",description)

                    self.Names.append(name)
                    self.Desctiptions.append(description)

                }
            }
        }


    }

创建幻灯片方法

 func createSlides() -> [Slide] {
        //firebase link
        let slide1:Slide = Bundle.main.loadNibNamed("Slide",owner: self,options: nil)?.first as! Slide
        slide1.labelTitle.text = Names[0]
       }

我想知道是否有人可以向我展示如何获取'createSlides()'方法来等待'getRestauraunts()'方法完成。谢谢

h12405asdf 回答:从Firebase获取显示的名称

只需从getrestaurant()的{​​{1}}结束处调用它即可

getDocuments

顺便说一句,也许值得创建一个简单的 func getRestauraunt(){ //as before... } else { for document in snapshot!.documents { let name = document.get("Name") as! String let description = document.get("Description") as! String self.Names.append(name) self.Desctiptions.append(description) } self.createSlides() } } } 结构,该结构具有name和description属性,并且只有一个数组:Document

本文链接:https://www.f2er.com/3155837.html

大家都在问