在相同uid下保存数据Firebase swift



我已经添加了一些数据到Firebase实时数据库。它分为两部分,用户和预订。我的问题是,当用户预订乘车时,它给出了不同的uid,我希望当用户预订乘车时,它在相同的uid下。此外,如果开关打开,我想把它放在同一子节点下,预订,但它进入不同的节点时保存。如有任何帮助,我将不胜感激。

func Save(){
let key = ref.childByAutoId().key

let Booking = [


"id": key as Any,
"What Date": atALaterDate.text! as String,
"What Time": hoursMinutesTextField.text! as String,
"To What Time": ToWhatTime.text! as String,
"Requests or Notes": SRtextfield.text! as String
]

as [String : Any]

ref.child(key!).setValue(Booking)

}

这是我希望它在一个节点下的位置,与它上面的节点结合在一起。

func Save2(){
let key = ref.childByAutoId().key

if Switch.isOn{

let passengers = [
"Passengers": Stepperlabel.text! as String,
"passenger Age 1": AgeOfChild1.text! as String,
"passenger Age 2": AgeOfChild2.text! as String,
"passenger Age 3": AgeOfChild3.text! as String,
"passenger Age 4": AgeOfChild4.text! as String,
"passenger Age 5": AgeOfChild5.text! as String,
"passenger Age 6": AgeOfChild6.text! as String,

]

as [String : Any]

ref.child(key!).setValue("booking")



}else{
print("Hello")
return
}

}

我认为问题是如何向节点添加额外的数据。

重要的一点是保持对您想要写入的节点的引用,并将其与update一起使用以添加/更改现有数据。

如果update

在不存在的节点上使用,则会被添加。这里有一个例子。假设我们有一个聊天应用程序,我们想写一个初始字符串Hello, World,然后添加一个额外的字符串怎么了?到同一节点

let messagesRef = self.ref.child("messages") //the top level node
let thisMsgRef = ref.childByAutoId() //create a child node

thisMsgRef.setValue( ["msg": "Hello, World"]) //create the node, write data
thisMsgRef.updateChildValues(["anotherMsg": "Whats up?"]) //add addl data

这将产生以下结构

messages
-Jy444f476u6...
anotherMsg: "Whats up?"
msg: "Hello, World"

如果你想一次又一次地重用这个节点,对它的引用可以存储为类var,然后在任何时候你想写它,只要引用var…

class ViewController: NSViewController {  
var myMsgRef: DatabaseReference!

然后在代码后面的某个地方

func writeInitialData() {
let ref = self.ref.child("messages")
self.myMsgRef = ref.childByAutoId()
self.myMsgRef.setValue( ["msg": "Hello World"])

,然后当你想添加额外的数据

func addAdditonalData() {
self.myMsgRef.updateChildValues(["anotherMsg": "Whats up?"])