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