gpt4 book ai didi

ios - 从firebase获取名称显示

转载 作者:行者123 更新时间:2023-12-01 19:38:37 24 4
gpt4 key购买 nike

我正在尝试显示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()”方法完成。谢谢

最佳答案

只需从getrestaurant()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()
}
}
}

顺便说一句,创建带有名称和描述属性的简单 Document结构,并仅具有一个数组也可能是值得的: [Document]

关于ios - 从firebase获取名称显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58720893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com