将Firestore数据显示到UIPicker Swift 4中

时间:2018-04-26 08:48:33

标签: swift firebase google-cloud-firestore

我仍然是快速开发的新手,我的问题是,我有如下的Firestore结构:

enter image description here

问题是将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的另一部分已经得到了很好的管理。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

在你的类中创建一个数组变量来保存有关你的程序的信息:

var programsArray: [String] = []

从Firebase读取数据时,而不是print(program)使用programsArray.append(program)。获得所有数据后,调用UIPickerView重新加载功能。

DispatchQueue.main.async { self.your_picker_view.reloadAllComponents() }

当然,在pickerview数据源方法中使用此数组。