【发布时间】:2016-09-01 02:26:51
【问题描述】:
我正在使用循环将名称上传到 FireBase 中的表,该循环使用 childByAutoID() 方法添加名称,如下所示:
for dependent in dependentsArray
{
let dependentName = dependent.text.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
CURRENT_USER_DEPENDENTS_URL.childByAutoId().setValue(["name" : dependentName])
}
然后在我的仪表板中看起来像这样:
然后我像这样观察依赖表:
CURRENT_USER_DEPENDENTS_URL.observeEventType(.Value, withBlock: { snapshot in
print(snapshot.value)
self.dependentsJSON = snapshot.value as? [String : [String : String]]
}, withCancelBlock: { error in
print(error.description)
})
上面代码中的print 语句会生成这个 JSON 字典:
{
"-KH3Cg0KFvMNEULYUezv" = {
name = one;
};
"-KH3Cg0LeTs54nbYonmv" = {
name = two;
};
"-KH3Cg0LeTs54nbYonmw" = {
name = three;
};
"-KH3Cg0LeTs54nbYonmx" = {
name = four;
};
}
简单地说我希望能够从这个 JSON 字典中获取每个依赖项的 UID,这样我就可以在 NSUserDefaults 中创建一个依赖 UID 数组,并对 JSON 进行排序像这样的字典:
if let firstName = self.dependentsJSON?["-KH3Cg0LeTs54nbYonmx"]?["name"] {
print(firstName)
}
旁注: 我可以在创建 UID 并将其添加到数据库时保存它们,但事实是 UID 需要在运行时获取,以防用户卸载应用程序。
【问题讨论】: