1

我仍然是快速开发的新手,我的问题是,我的 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())");
                }

            }
    }

} 

结果打印(程序)返回如下:

第一个程序

第二程序

第三个程序

UIPicker 的另一部分已经得到很好的管理。提前致谢。

4

1 回答 1

1

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

var programsArray: [String] = []

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

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

当然,在您的 pickerview 数据源方法中使用这个数组。

于 2018-04-26T10:30:32.180 回答