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

Posted

技术标签:

【中文标题】如何从firebase数据库中检索数据作为字符串而不是字典并将其添加到数组中?【英文标题】:How to retrieve data as a string, not a dictionary, from firebase database and add that to an array? 【发布时间】:2018-01-15 22:02:20 【问题描述】:

我有一个这样设置的 firebase 数据库...

后项目--|

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

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

我想检索“你最喜欢的颜色是什么?”这个问题。从实时数据库中,并将该值作为字符串放入数组中。我还需要添加每个新问题以自动加入数组。

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

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】:

你真的应该像这样构造你的数据

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
)

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

【讨论】:

@MichaelR。优秀的!如果它有效并且有帮助,但一定要接受它,这样它也可以帮助其他人!

以上是关于如何从firebase数据库中检索数据作为字符串而不是字典并将其添加到数组中?的主要内容,如果未能解决你的问题,请参考以下文章

从 Firebase 检索和读取数据作为 NSArray (Swift 3)

如何根据 android 中的用户位置从 Firebase 数据库中检索数据?

Firebase 大查询 - 如何从自定义事件表中检索数据

无法从短动态链接中检索数据 - Firebase

从检索到的 firebase 数据在 TableView 上快速设置图像

如何从firebase数据库检索经度和经度到android地图应用程序