我有一个使用Swift从Firebase检索的数据列表。
我尝试使用.Value
获取数据,Firebase会返回一个字典,其中包含每个项目的ID以及每个ID相关的信息。
我调用的端点是 / ideas 。
let ideasRef = firebase.childByAppendingPath(IdeaStructure.PATH_IDEAS)
ideasRef.observeEventOfType(.Value, withBlock: { snapshot in
print(snapshot.value)
}, withCancelBlock: { error in
print(error.description)
})
为了优化这一点,我改为.ChildAdded
。在这种情况下,我只获得没有ID关联的单个项目。
是否可以使用.ChildAdded
获取每个项目的ID?
如果没有,我如何将Firebase生成的ID保存到每个项目中?目前我正在以这种方式保存每个项目:
let ideasRef = firebase.childByAppendingPath(IdeaStructure.PATH_IDEAS).childByAutoId()
let idea = [
IdeaStructure.FIELD_MESSAGE: message,
IdeaStructure.FIELD_CREATOR_ID: userId,
IdeaStructure.FIELD_CREATION_DATE: NSDate().formattedISO8601
]
ideasRef.setValue(idea)
答案 0 :(得分:3)
要获取快照的密钥,请访问其key
属性:
let ideasRef = firebase.childByAppendingPath(IdeaStructure.PATH_IDEAS)
ideasRef.observeEventOfType(.Value, withBlock: { snapshot in
print(snapshot.key)
print(snapshot.value)
}, withCancelBlock: { error in
print(error.description)
})
Firebase's excellent programming guide for iOS中涵盖了这个以及更多主题。