我有以下结构:
DATA :
-kojasd- <----- child by autoid key name for folder
property:value
-kjofs- <----- child by aytoid key name for folder
property:value
如何在snapshot.children循环中获取childbyautoid()的键值?
这里有一些代码可以解释:
for items in snap.children {
let key = items.key as! String // DOESN T WORK
let value = items.value!!["property"] as! String
}
在此代码中,snap指的是DATA
我认为获得这个关键值很容易,但是我很久以来就在这里,任何帮助? :)
真诚 晏
答案 0 :(得分:3)
如果让我们说你有帖子,你可以这样得到它。
ref.child("posts").observeEventType(FIRDataEventType.Value, withBlock: { snapshot in
for childSnap in snapshot.children.allObjects {
let snap = childSnap as! FIRDataSnapshot
print(snap.key)
let property = snap.value!["property"] as! NSString
}
})
我知道已经给出了芒果,但我想提供更多解释。
答案 1 :(得分:3)
对于使用新Xcode 8 beta 3和swift 3的用户,许多符号已经改变,下面的代码片段应该为您提供子值为String;基本上你需要做另一次检查并安全地向上:
for childSnap in snapshot.children.allObjects {
let snap = childSnap as! FIRDataSnapshot
if let snapshotValue = snapshot.value as? NSDictionary, let snapVal = snapshotValue[snap.key] as? AnyObject {
print("val" , snapVal)
}
}
答案 2 :(得分:2)
我也花了一些时间,尽管你说这对你不起作用,但我认为应该如何做到这一点:
rootRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
for item in snapshot.children {
print(item.key)
}
})
答案 3 :(得分:-2)