Swift 如何在现有节点中添加新节点?

Swift 如何在现有节点中添加新节点?,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我正在尝试在现有节点内创建一个新节点。我尝试的其他代码只是在Mariot中添加了信息。我试图把节点放在Mariot“Guest”中,然后是autoID,然后是信息 旅馆 马里奥 地址:######## 联系人:######## 电邮:######## 唯一的:######## 我想在Mariot中放置另一个节点,即“来宾” 下面是我尝试的代码 @IBAction func acceptBtn(_ sender: Any) { Database.database().reference()

我正在尝试在现有节点内创建一个新节点。我尝试的其他代码只是在Mariot中添加了信息。我试图把节点放在Mariot“Guest”中,然后是autoID,然后是信息

  • 旅馆
    • 马里奥
    • 地址:########
    • 联系人:########
    • 电邮:########
    • 唯一的:########
我想在Mariot中放置另一个节点,即“来宾”

下面是我尝试的代码

@IBAction func acceptBtn(_ sender: Any) {
Database.database().reference().child("hotels").queryOrdered(byChild: 
"uniqueID").queryEqual(toValue: requestID).observe(.childAdded) {
(snapshot) in

snapshot.ref.updateChildValues(["email":email, "contact":contact])
}
}
我希望它看起来像这样

  • 旅馆
    • 马里奥
    • 地址:########
    • 联系人:########
    • 电邮:########
    • 唯一的:########
    • 客人
      • (自动识别)
      • 电邮:########
      • 联系人:########
      • (自动识别)
      • 电邮:########
      • 联系人:########
      • (自动识别)
      • 电邮:########
      • 联系人:########

要在子节点下添加新值:

ref.updateChildValues(["guest/email":email, "guest/contact":contact])
如果您还希望其中包含自动ID:

let key = ref.childByAutoId().key
ref.updateChildValues(["guest/\(key)/email":email, "guest/\(key)/contact":contact])
但我不确定您是否真的需要在这里使用
updatechildvalue
。您还可以简单地执行以下操作:

ref.childByAutoId().setValue(["email":email, "contact":contact])

谢谢你,弗兰克。但是当我使用ref时,我得到了一个错误“使用未解析的标识符'ref'。我需要放一个自动识别码,因为如果我没有。它只会与前面的信息重叠。
ref
在上面是一个用于添加数据的位置。它可以是代码中类似的
snapshot.ref
,或者其他更合适的东西。我的第二个和第三个代码片段都展示了如何使用自动ID。