我设置了一个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)
}
}
答案 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 ...)的关键父节点。