我有一个具有以下结构的 firebase 数据库,顶部 ID 显示为用户的 UID:
虽然这个例子只显示了 2 个菜单项,但我的大多数用户会有超过 10 个。如果我想创建一个包含所有菜单项名称的列表,那么在 Swift 中该查询会是什么样子?更具体地说,这条路径在 swift 中会是什么样子?目前,我的道路走到了这一步:
var itemNameRef = Firebase(url: "https://*******.firebaseIO.com/users/\(ref.authData.uid)/menu/")
是否有类似于 authdata.uid 的 ID 占位符,我可以将其放在“菜单”之后的空间中?
以前,在不同的结构下,使用 [for] 循环,我能够将项目名称作为子项存储在“菜单”下,项目详细信息存储在其下方。但根据另一位 SO 用户的建议,我已经换成随 secret 钥,现在又回到了原来的状态。
我这样做的方式正确吗?
谢谢!
最佳答案
要查询现在拥有的菜单项名称列表:
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
}
}
此外,为了获得最佳实践,请尝试为 Firebase 构建“平面”数据库结构(请参阅 https://www.firebase.com/docs/web/guide/structuring-data.html )。
关于ios - 在 Firebase 中访问用户 ID 中的子 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37084034/