Swift 3.0 如何在 Firebase 中的父级上添加子级
Posted
技术标签:
【中文标题】Swift 3.0 如何在 Firebase 中的父级上添加子级【英文标题】:Swift 3.0 How to add a child on a parent in firebase 【发布时间】:2017-08-10 19:11:10 【问题描述】:我想创建一个新的孩子,例如游戏;然后是用户“购买”的游戏的数据......问题是前提条件是用户已登录,我已经设法存储用户登录时的数据......所以现在我想在这个特定用户下创建一个新的孩子,并为此保存一些我无法工作的数据。
Database.database().reference().child(Auth.auth().currentUser!.uid).child("Games").updateChildValues(["game" : downloadURL])
在 users 下,我想创建一个名为 Games 的新子项,然后向该子项添加数据。在这个例子中,它应该在 -KrC....(用户)的下方
【问题讨论】:
以后,请将您的 Firebase 结构发布为文本,不要使用图片或链接。您可以从 Firebase 控制台获取您的结构 -> 导出 JSON 并从该文件中复制并粘贴它 问题是你的代码。您忘记在路径中包含“Users/”。 J. Doe 是什么意思? Auth.auth().currentUser!.uid 应该指向用户吗?然后创建一个节点(子)应该做对吗? 【参考方案1】:我认为您的问题是要添加另一个子节点?
假设用户已通过身份验证,并且他们的 uid 为 uid_0
class ViewController: UIViewController
var ref: DatabaseReference!
override func viewDidLoad()
super.viewDidLoad()
self.ref = Database.database().reference()
let uid = Auth.auth().currentUser?.uid
let thisUsersGamesRef = self.ref.child("users").child(uid!).child("Games")
let gameRef0 = thisUsersGamesRef.childByAutoId().child("game_url")
gameRef0.setValue("http://www...")
let gameRef1 = thisUsersGamesRef.childByAutoId().child("game_url")
gameRef1.setValue("http://www..")
会给
users
uid_0
email: ....
Games:
-Yuhu98js9d
game_url: "http://www..."
-H89j90k0s0
game_url: "http://www..."
【讨论】:
是的,但它不应该把-KrCv作为参数?它应该采取登录的那个?使其通用 更新获取当前用户uid 没错!但是你能详细说明这部分吗? let ref = self.ref.child("users").child(uid).child("Games") 我需要将它保存到数据库我如何声明uid和ref变量???根据火力基地.. 它在顶部 - 第一行代码 let uid = Auth.auth().currentUser.uid。 ref 来自您的数据库。我将添加更多代码。Firebase Getting Started Guide 涵盖了大部分代码 我自己尝试过; let uid = Auth.auth().currentUser!.uid let ref = Database.database().reference().child("users").child(uid).child("Games") ref.updateChildValues([" image" : downloadURL]) 不起作用。它只是创建了一个新的用户父级,然后向其中添加了新节点...以上是关于Swift 3.0 如何在 Firebase 中的父级上添加子级的主要内容,如果未能解决你的问题,请参考以下文章
如何安装 Firebase Crashlytics Swift 3.0