我的应用程序中有此代码:

DataService.dataService.USERS_REF.childByAppendingPath(DataService.dataService.CURRENT_USER_ID).childByAppendingPath("groups").observeSingleEventOfType(.Value, withBlock: { snapshot in

  print(snapshot)

})

如果我打印结果,我只得到一个具有此值的快照:
Snap (groups) {
    "-KBAX-d4UNQMZErrTqPD" = true;
    "-KBAX0rrrR-trRZc408F" = true;
    "-KBAX2-lrGd-Bx2zVizv" = true;
    "-KBCL_xUjm-kf1JsGgpA" = true;
    "-KBCOlullSmzi46ecf9J" = true;
}

如果我打印snapshot.key
groups

如果我打印snapshot.value
{
    "-KBAX-d4UNQMZErrTqPD" = true;
    "-KBAX0rrrR-trRZc408F" = true;
    "-KBAX2-lrGd-Bx2zVizv" = true;
    "-KBCL_xUjm-kf1JsGgpA" = true;
    "-KBCOlullSmzi46ecf9J" = true;
}

有没有一种方法可以迭代所有快照值并获取每个快照值的所有键和值?在这种情况下,此快照中有5个键和值。

最佳答案

不过,我已经找到解决办法了。在这种情况下:

DataService.dataService.USERS_REF.childByAppendingPath(DataService.dataService.CURRENT_USER_ID).childByAppendingPath("groups").observeSingleEventOfType(.Value, withBlock: { snapshot in

    for rest in snapshot.children.allObjects as! [FDataSnapshot] {
        print(rest.key)
    }
})

07-24 09:45
查看更多