【问题标题】:I am trying to fetch data from Firestore database in my ios Swift Project我正在尝试从我的 ios Swift 项目中的 Firestore 数据库中获取数据
【发布时间】:2018-05-25 09:06:28
【问题描述】:

我想从订阅集合团队获取数据。

我正在尝试以下代码:

db.collection("subscriptions").addSnapshotListener { querySnapshot, error in
    guard let snapshot = querySnapshot else {
        print("Error retreiving snapshots \(error!)")
        return
    }

    //print("Current data: \(snapshot.documents.map { $0.data() })")

    for document in snapshot.documents{
        print(document.data())
    }
}

我的代码输出

所以,就我而言,我能够获取集合的数据但无法从团队获取数据,请帮助我,感谢支持

【问题讨论】:

  • 你不能直接通过document.data()["team"] as? [String: Any] 获取团队信息吗?
  • 仅供参考使用getDocuments函数而不是addSnapshotListener
  • 感谢您的支持和回复,现在只需要 team 的 office id,这是输出。可选的(["developer@ratufa.com": { name = "Developer Ratufa"; officeId = myuPlTBO8sEM4SOQ8rWY; }, "judd.flamm@whitecoatlabs.io": { officeId = myuPlTBO8sEM4SOQ8rWY; }])
  • @Pankaj99 这是一本字典,你可以得到它。有什么问题?
  • @TheTiger 先生,我想获取办公室 ID 和名称,因为我是 Firestore 的新手,并且在 ios 中也比较新鲜。这是一个普通的应用程序,我必须在其中获取一些数据以验证只有那些数据存在于 firestore 中的人(意味着只有那些可以登录其数据存在于数据库中的人),并且登录后数据应该在表视图中可见。

标签: ios swift firebase google-cloud-firestore


【解决方案1】:

如果您不想监听每个事件,请使用 getDocuments 方法而不是 addSnapshotListener

/// This will give you team data
document.data()["team"]

在从 firestore 获得 team 信息后。以下是获取nameofficeId的方法:

if let teamInfo = document.data()["team"] as? [String: Any] {
   let teams = teamInfo.map {$0.value}
   for team in teams {
       guard let validTeam = team as? Dictionary<String, Any> else {continue}
       let name = validTeam["name"] as? String ?? ""
       let officeId = validTeam["officeId"] as? String ?? ""
       print("name: \(name), officeId: \(officeId)")
   }
}

输出

name: Developer Ratufa, officeId: myuPlTBO8sEM4SOQ8rWY
name: , officeId: myuPlTBO8sEM4SOQ8rWY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    相关资源
    最近更新 更多