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

时间:2016-05-09 00:21:23

标签: ios arrays swift firebase

我一直在围绕一些看似非常简单的事情,但我无法弄明白。我只是想从Firebase读取数据并将其保存在数组中,以便我可以在我的应用中使用它。我知道如何读取数据,因为以下内容可供我在控制台中打印出来:

 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

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

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

$re = "/(drv:\\d+)[^[]+(\\[[^]]+\\])/mi"; 
$str = "your string";
preg_match_all($re, $str, $matches);

答案 1 :(得分:3)

我在睡觉后想出来了。在此发布,以便下一个人更容易理解。

 // 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()
        }
    })