【问题标题】:Firestore - Append to tableView when view is loadedFirestore - 加载视图时附加到 tableView
【发布时间】:2018-10-15 22:28:42
【问题描述】:

有人可以告诉我如何将 Firestore 中的数据附加到数组中吗?我想做的是这样当视图出现时,数据被附加到下面的数组中,然后附加到 tableView 的正确标签中。当我调用 print("(document.data())") 数据显示它应该在底部面板中执行的方式时,我只是不知道如何制作它以便它附加到我的数组中。任何帮助将不胜感激,非常感谢!

Firestore

Xcode bottom panel

struct DetailsAdded {
    var titleName: String
    var detailsName: String

}

var array = [DetailsAdded]()

override func viewDidLoad() {
    super.viewDidLoad()

    db = Firestore.firestore()
    loadData()

    }

func loadData() {
    db.collection("Users").getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                print("\(document.data())")
            }
        }
    }

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CreateWorkoutCell", for: indexPath) as! CreateWorkoutTableViewCell

    cell.titleLabel.text = array[indexPath.row].titleName
    cell.detailsLabel.text = array[indexPath.row].detailsName

    return cell
}

【问题讨论】:

    标签: swift uitableview append google-cloud-firestore


    【解决方案1】:
        if let snapshot = querySnapshot {
    
            for document in snapshot.documents {
    
                let data = document.data()
                let name = data["name"] as? String ?? ""
                let details = data["details"] as? String ?? ""
                let newDetails = DetailsAdded(titleName: name, detailsName: details)
                array.append(newDetails)
            }
    
            self.tableView.reloadData()
        }
    

    【讨论】:

    • 完美运行!!非常感谢!
    • 您好,抱歉所有问题!但是我怎样才能做到这一点,当我按下添加时,它会创建一个新的 autoID 作为文档,然后将其传递给新的视图控制器,以便我可以使用刚刚创建的 ID 作为字符串?再次感谢!
    • 嗨。如果您正在创建一个新的 Firestore 文档,您可以在第二个 ViewController 中执行此操作。您可以使用let newID = UUID().uuidString 创建一个自动 ID。然后将其用作您的 documentID 并使用 setData 创建您的文档。
    • 另一种方法是调用.addDocument 而不是setData,Firestore 将为您创建一个 UUID。取决于您是否需要事先知道 UUID 是什么。
    • 嗨 rbaldwin,您可以看看我的新问题吗?非常感谢您的再次帮助,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多