swift - 如何从 Swift 5 上的 firebase 实时数据库检索子数据

标签 swift firebase firebase-realtime-database swift5

我面临 2 天的 firebase 问题,无法处理。

这是我的实时数据库

enter image description here

我正在获取内容、发布日期、来源等,但标签。

我想获得标签子项的“0:100”值。这是我的代码:

你能帮帮我吗?

databaseRef.child("posts").queryOrderedByKey().observe(.childAdded, with: { (snapshot) in
  if let valueDictionary = snapshot.value as? [AnyHashable:String] {
    let newsTitle = valueDictionary["title"]
    let newsImage = valueDictionary["imageUrl"]
    let publishData = valueDictionary["publishData"]
    let content = valueDictionary["content"]
    let tags = valueDictionary["tags"]

    self.news.insert(newsStruct(newsTitle: newsTitle, newsImage: newsImage, publishData: publishData, content: content, tags: tags), at: 0)

    self.tableView.reloadData()
    self.tableViewTagsNews.reloadData()
 }
})

最佳答案

假设您有多个这样的帖子

posts
   0
      tags
         0: 100
         1: 200
   1
      tags
         0: 100
         1: 200

下面的代码将遍历每个帖子,一次一个,读取内容,然后读取标签并将它们输出到控制台。

func readPostTags() {
    let postsRef = self.ref.child("posts")
    postsRef.observe(.childAdded, with: { snapshot in
        let content = snapshot.childSnapshot(forPath: "creation_date").value as! String
        let tagsSnap = snapshot.childSnapshot(forPath: "tags")
        let allChildTagsSnap = tagsSnap.children.allObjects as! [DataSnapshot]
        for tagChildSnap in allChildTagsSnap {
            let key = tagChildSnap.key
            let value = tagChildSnap.value as! Int
            print(content, key, value)
        }
    })
}

和输出

0 100
1 200
0 100
1 200

请记住,.childAdded 将在该节点上留下观察者并通知您进一步添加。

关于swift - 如何从 Swift 5 上的 firebase 实时数据库检索子数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55899804/

相关文章:

swift - 来自解析的数据未通过 prepareForSegue 传递

firebase - "The operator ' [] ' isn' t defined"在flutter firestore 中使用.data[] 时出现错误

javascript - 循环遍历 firebase 数据

javascript - Angular Firebase 通过订阅监听 foreach 变化

ios - 如何让 ParseUI 演示在新项目上运行?

swift - 是否有一个快速数据结构可以包含一个可以是任何类型并且可以切换的rawValue

ios - Swift Firebase 查询最多需要一分钟

javascript - Firebase 的云功能 : functions. pubsub.topic ('testTopic' ).onPublish 未调用

java - Firebase 实时数据库不在 Recyclerview 中显示图像

ios - Xcode 10 错误。 PhaseScriptExecution 失败,退出代码为非零 : errSecInternalComponent