【问题标题】:why is only one field being displayed?为什么只显示一个字段?
【发布时间】:2021-06-06 17:30:14
【问题描述】:

尝试打印应用程序的所有当前用户的姓名,他们在控制台中打印,但是当应用程序运行时,只显示其中一个名称。

            func getData() {
                
              let db = Firestore.firestore()
                   
                   // Get data
              db.collection("users").getDocuments()
              {
                  (snapshot, err) in

                  if let err = err
                  {
                      print("Error getting documents: \(err)");
                  }
                  else
                  {
                    snapshot!.documents.forEach({ (document) in
                        let firstname = document.data()["firstname"]
                        print(firstname!)
                        self.studentlbl.text = (firstname! as! String)
                      }
                    )

如何解决这个问题? 谢谢!

【问题讨论】:

  • 您没有显示任何 UI 代码,但看起来您只有一个标签。您要么需要多个标签、一个文本视图,要么可能需要一个表格视图来填充这些数据。

标签: swift xcode firebase google-cloud-firestore


【解决方案1】:

看起来您只有一个标签视图,因此每次运行此行时,您都会覆盖该标签的先前值:

self.studentlbl.text = (firstname! as! String)

如果你想在单个标签中显示所有值,你可以这样做:

self.studentlbl.text = self.studentlbl.text + (firstname! as! String)

【讨论】:

  • 文本字段不是可选的,所以在第一次迭代时会失败?需要以某种方式打开包装。最简单的可能self.studentlbl.text = (self.studentlbl.text ?? "") + (firstname! as! String)
  • 这似乎有效,但是名称都显示在一起。关于如何分隔名称的任何想法?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-28
  • 2012-05-13
  • 2017-03-12
  • 1970-01-01
相关资源
最近更新 更多