如何从 Firebase 检索数据?

How to retrieve data from Firebase?

我正在尝试检索存储在 Firebase 中的每个对象。不确定如何继续。以下是我的代码和 snap.value 打印出来的。我需要检索字符串 "cbc" 和 "cp24" 以及 datasaved 和 url 的值。 "cbc"和"cp24"是我保存时输入的名字。

Ref_UsersBase.observeEventType(.Value, withBlock: { snapshot in

 if let snapshots = snapshot.children.allObjects as? [FDataSnapshot] {

            for snap in snapshots {

                print(snap.value)


            }              
        }
    })

{

// 这里是 snap.value 打印:

{
"-KGOzXm1lLtyS23cOR-G" =     {
    cp24 =         {
        datesaved = "Apr 27, 2016";
        url = "https://www.google.ca/search?site=&source=hp&ei=H0chV6pfhKeOBJChpqAN&q=cp24+weather&oq=&gs_l=mobile-gws-hp.1.0.41l2.0.0.0.13343.1.1.0.1.1.0.368.368.3-1.1.0....0...1..64.mobile-gws-hp..0.1.6.2.JC6OI95nuYc";
    };
};
"-KGOznhRN0J2OVlIogZ0" =     {
    cbc =         {
        datesaved = "Apr 27, 2016";
        url = "http://www.cbc.ca/beta/news/canada/toronto";
    };
};

}

以上是我遇到的类似情况,希望对你有所帮助。

我声明了一个变量来存储snapshot.value,第一个数组用于存储第一级的键(“-KGOzXm1lLtyS23cOR-G”)和第二个数组用于存储第二级的键("cp24").

var receivedData = [String:[String:[String:String]]]()
var firstKeyArray = [String]()
var secondKeyArray = [String]()

我将整个 snapshot.value 存储在 receivedData 中。

Ref_UsersBase.observeEventType(.Value, withBlock: { snapshot in
    self.receivedData = snapshot.value    
})

填写 firstKeyArray 和 secondKeyArray

var i = 0

for(key,_) in receivedData{
    firstKeyArray.append(key)
    for(key,_) in receivedData[firstKeyArray[i]]!{
        secondKeyArray.append(key)
    }
    i += 1
}

最后,您将像这样访问 datesaved 和 url 值

print(receivedData[firstKeyArray[0]]![secondKeyArray[0]]!["datesaved"]!)

//prints Apr 27