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

Firebase Swift 3.0 语法更新?

Firebase 与 Swift 3.0 UITableView

Swift 3.0 的 Firebase 语法

火力基地 |远程通知不显示,swift 3.0

想要使用 Swift 3.0 发送自定义电子邮件,即来自 firebase 的欢迎邮件