ios - 在 Firebase 中访问用户 ID 中的子 ID

标签 ios swift firebase

我有一个具有以下结构的 firebase 数据库,顶部 ID 显示为用户的 UID:

enter image description here 虽然这个例子只显示了 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/

相关文章:

IOS 不在 webview 中显示填充的 PDF 表单填充文本

swift - 当玩家节点与另一个节点碰撞时游戏结束,当游戏只应在玩家与边界碰撞时结束

ios - xCode/Firebase 搜索栏单元格失败

xcode - 使用 Swift Package Manager 时如何生成用于开发的 Xcode 项目文件

javascript - 由于 AppCheck,我对 Firestore 的所有请求都被归类为未验证?

firebase - 从 Chrome 应用程序使用 Firebase 时出错

ios - 如何正确初始化自定义 UITableviewCell?

android - 我的 CSS 会在 Android 的 WebView 和 IOS UIWebView 中正确呈现吗?

ios - 未找到匹配的代码或已被使用

android - 使用kotlin更新特定时期的firebase实时数据库