我怎么才能从firebase获得钥匙?

时间:2017-09-21 12:27:06

标签: ios swift database firebase firebase-realtime-database

我在图像上有一个数据库结构,我需要显示红色矩形中的这个日期。我试图像这样做smth,但它抛出一个错误,我在堆栈上找不到相同的问题。

我的数据库

enter image description here

reference.child("doc1").observe(.value, with: { (snapshot) in
            if snapshot.exists() {
                for date in (snapshot.value?.allKeys)
            }

1 个答案:

答案 0 :(得分:1)

您的结构是字典词典,所以你必须将你的按键投射到[String:[String:Any]],其中键是你的“11点......”,值包含所有小时

所以尝试使用此代码:

guard let dict = snap.value as? [String:[String:Any]] else { return }
for (key, value) in dict {
    for (key2, value2) in value {
        print(key2, value2) // this print your hours
    }
}

无论如何,我建议你不要使用一个observe(.value)来读取所有子节点上发生的所有变化。而是使用观察者的.childAdded功能。

使用.childAdded,您一次只能收到一个孩子(比如儿童节点上的for),之后只会添加孩子:

Database.database().reference().child("doc1").observe(.childAdded) { (snap) in
    guard let dict = snap.value as? [String:Any]
    print(dict) // this print data contains on "11dot10" and so on  
}