如何从firebase数据库中检索数据作为字符串而不是字典,并将其添加到数组中?

时间:2018-01-15 22:02:20

标签: ios arrays swift firebase firebase-realtime-database

我设置了一个firebase数据库......

  

后items-- |

         What's your favorite color?--|
        -- addedByUser: "Michael Ruddy"

            --question: "What's your favorite color?"

我想找回问题"你最喜欢的颜色是什么?"从实时数据库中将该值作为String放入数组中。此外,我需要添加每个新问题以自动加入数组。

我当前的代码只收到一个字典值,当转换时,它是随机顺序。

func startObservingDB() {
    dbRef.observe(.value, with: { (snapshot:DataSnapshot) in
        let postDict = snapshot.value as? [String: AnyObject] ?? [:]
        let newPosts = postDict

        self.tableView.reloadData()
        print (self.posts)
    }) { (error) in
        print(error)
    }
}

1 个答案:

答案 0 :(得分:1)

你应该像这样构建你的数据

post_items
   -Yuh8...
       question: "What's your favorite color"
       asked_by: "Michael Ruddy"

以及一次一个地阅读所有问题的代码,然后查找新添加的问题

let postsRef = self.ref.child("post_items")
postsRef.observe(.childAdded, with: { snapshot in
    let dict = snapshot.value as! [String: Any]
    let q = dict["question"] as! String
    let a = dict["asked_by"] as! String
    print("\(a) asked \(q)")
    //add data to the array
    //tableView.reloadData
})

使用childByAutoId创建每个帖子(Yuh8 ...)的关键父节点。

相关问题