从 Firebase 读取数据并保存到数组中 (Swift)

Posted

技术标签:

【中文标题】从 Firebase 读取数据并保存到数组中 (Swift)【英文标题】:Read Data from Firebase and Save Into an Array (Swift) 【发布时间】:2016-05-09 00:21:23 【问题描述】:

我一直在围绕一些看似非常简单的事情兜圈子,但我无法弄清楚。我只是想从 F​​irebase 读取数据并将其保存在数组中,以便我可以在我的应用程序中使用它。我知道如何读取数据,因为我可以在控制台中打印出以下数据:

 var ref = Firebase(url: "<MYFIREBASEURL>")

 ref.observeEventType(.ChildAdded, withBlock:  snapshot in

        print(snapshot.value.objectForKey("title"))

    )

我尝试了其中一些方法来保存到数组,但我无法让它工作,因为它不能直接解决我更简单的问题。

Adding Firebase data into an array

How to save data from a Firebase query

感谢您的帮助!

【问题讨论】:

【参考方案1】:

这就是我使用 Firebase 检索值并附加到数组的方式。 REF_POSTS 是对我在 Firebase 中的帖子对象的基于 url 的引用。请记住,firebase 对象本质上是字典,您需要从中解析数据并将其分配给变量才能使用它们。

    var posts = [Post]()// put this outside of viewDidLoad

    //put the below in viewDidLoad
    DataService.ds.REF_POSTS.observeEventType(.Value, withBlock:  snapshot in
        print(snapshot.value)  
        self.posts = []
        if let snapshots = snapshot.children.allObjects as? [FDataSnapshot] 
            for snap in snapshots 
                if let postDict = snap.value as? Dictionary<String, AnyObject> 
                    let key = snap.key
                    let post = Post(postKey: key, dictionary: postDict)
                    self.posts.append(post)
                 
            
        
        self.postTableView.reloadData() 
    )

【讨论】:

感谢分享您的方法。【参考方案2】:

我睡了之后才知道。在这里发帖是为了让下一个人更容易弄清楚。

 // Class variables
 var ref = Firebase(url: "https://<MYFIREBASEURL>")
 var titlesArray = [String]()

 // Under viewDidLoad

 // "events" is the root, and "title" is the key for the data I wanted to build an array with.
 let titleRef = self.ref.childByAppendingPath("events")
    titleRef.queryOrderedByChild("title").observeEventType(.ChildAdded, withBlock:  snapshot in

        if let title = snapshot.value["title"] as? String 
            self.titlesArray.append(title)

            // Double-check that the correct data is being pulled by printing to the console.
            print("\(self.titlesArray)")

            // async download so need to reload the table that this data feeds into.
            self.tableView.reloadData()
        
    )

【讨论】:

以上是关于从 Firebase 读取数据并保存到数组中 (Swift)的主要内容,如果未能解决你的问题,请参考以下文章

角度 4 - 从 firebase 动态读取数组

c语言读取文件然后保存到数组中

Firebase读取/保存数据以将其用作列表|斯威夫特/火力地堡

Android-从Firebase实时数据库读取数据并显示在RecyclerView上

从Firebase实时数据库读取Android数据并在RecyclerView上显示

无法将数据从 Firebase 附加到数组 SwiftUI