我有一个具有以下结构的firebase数据库,显示的顶部ID是用户的UID:
虽然这个例子只显示了2个菜单项,但我的大多数用户都会超过10个。如果我想创建所有菜单项名称的列表,那么查询在Swift中会是什么样子?更具体地说,那条路径在swift中会是什么样子?目前,我的道路是如此:
var itemNameRef = Firebase(url: "https://*******.firebaseIO.com/users/\(ref.authData.uid)/menu/")
是否有类似于authdata.uid的ID占位符,我可以在"菜单后放置空格?
以前和在不同的结构下,使用[for]循环我能够将项目名称存储为" menu"下的子项,其中项目详细信息存储在其下面。但根据另一个SO用户的建议,我已经换成了随机密钥而又回到原点。
我这样做是正确的吗?
谢谢!
答案 0 :(得分:1)
现在查询菜单项名称列表:
var rootRef = Firebase(url: "https://*******.firebaseIO.com")
let menuItems = rootRef.childByAppendingPath(UID).childByAppendingPath("menu")
menuItems.observeSingleEventOfType(.Value, withBlock: { snapshot in
for id in snapshot.children.allObjects as! [FDataSnapshot] {
//do what you want
}
}
此外,为了获得最佳实践,请尝试建立一个" flat" Firebase的数据库结构(请参阅https://www.firebase.com/docs/web/guide/structuring-data.html)。