我仍然是快速开发的新手,我的问题是,我有如下的Firestore结构:
问题是将firestore中的标题列表显示为uipicker,我需要将数据放入如下数组中: [firsProgramme,secondProgramme,thirdProgramme]
我设法显示所有"标题"来自firestore中的字符串,而不是数组
下面是代码:
func getprogram() {
let db = Firestore.firestore()
db.collection("Programme").getDocuments()
{
(querySnapshot, err) in
if let err = err
{
print("Error getting documents: \(err)");
}
else
{
for document in querySnapshot!.documents {
let data = document.data()
let program = data["title"] as? String ?? ""
// let agencyId = document.documentID
print(program)
//print("\(document.documentID) => \(document.data())");
}
}
}
}
结果打印(程序)返回如下:
firstprogramme
secondprogramme
thirdprogramme
UIPicker的另一部分已经得到了很好的管理。 提前谢谢。
答案 0 :(得分:1)
在你的类中创建一个数组变量来保存有关你的程序的信息:
var programsArray: [String] = []
从Firebase读取数据时,而不是print(program)
使用programsArray.append(program)
。获得所有数据后,调用UIPickerView重新加载功能。
DispatchQueue.main.async {
self.your_picker_view.reloadAllComponents()
}
当然,在pickerview数据源方法中使用此数组。