2016-03-08 61 views
2

我有以下結構:火力點快照鍵兒童autoids

DATA : 
     -kojasd-  <----- child by autoid key name for folder 
     property:value 
     -kjofs-  <----- child by aytoid key name for folder 
     property:value 

我怎麼能得到childbyautoid()在snapshot.children循環的核心價值?

這裏的代碼SA位解釋:

for items in snap.children { 
        let key = items.key as! String // DOESN T WORK 

        let value = items.value!!["property"] as! String 


       } 
在這段代碼

,卡是指數據

我認爲這將是很容易得到這個鍵值,但因爲我米這裏stucked很長一段時間,任何幫助? :)

真誠 晏

+0

OK,找到了解決辦法,我只好扣進入一個新的fdatasnapshot以獲得其關鍵 –

回答

3

對於那些正在使用新的Xcode 8 beta 3和Swift 3的人來說,許多符號已經改變了,像下面的代碼片段應該給你的孩子值作爲字符串;基本上你需要做其他檢查和安全地向上:

 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) 
      } 
     } 
-3

OK,找到了解決辦法,我只好扣進入一個新的fdatasnapshot與獲得其關鍵

+1

多一點點的信息將是有益的。 – senty

1

我花了一些時間太,雖然你說這不適合你,我認爲這是應該如何做:

rootRef.observeSingleEventOfType(.Value, withBlock: { snapshot in 
    for item in snapshot.children { 
     print(item.key) 
    } 
}) 
+0

nope,您必須將該項目轉換爲新的FDataSnapshot(如果bot爲item.key創建了一個不明確的值),請按照以下步驟讓newitem:FDataSnapshot = item然後訪問newitem.key或值 –

+0

我不知道,這對我來說無論如何... –

2

如果假設你有帖子,你可以這樣得到它。

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

我知道awnser已經給出,但我想給一些更多的解釋。

+0

輝煌,感謝張貼擴展版本 – drdrdrdr