Swift3 如何在Firebase中以当前uid保存数据

Swift3 如何在Firebase中以当前uid保存数据,swift3,firebase-realtime-database,Swift3,Firebase Realtime Database,我无法将新数据(“消息”)保存到当前用户 将用户信息推送到Firebase的我的代码 var ref: FIRDatabaseReference! = FIRDatabase.database().reference() self.ref.child("Users").child("UserID").childByAutoId().setValue(["Name": userName, "Email": userEmail]) var messageRef: FIRDatabaseRefer

我无法将新数据(“消息”)保存到当前用户

将用户信息推送到Firebase的我的代码

var ref: FIRDatabaseReference! = FIRDatabase.database().reference()

self.ref.child("Users").child("UserID").childByAutoId().setValue(["Name": userName, "Email": userEmail])
var messageRef: FIRDatabaseReference = FIRDatabase.database().reference()
let uid = FIRAuth.auth()?.currentUser?.uid
messageRef.child("Users").child("UserID").child(self.uid!).child("Messages").childByAutoId().setValue(["Sender Name": Profile.sharedProfile.Name!,"Date": self.currentDate(),"Time": self.currentTime(), "Text": self.text.text!])
将消息推送到Firebase的代码

var ref: FIRDatabaseReference! = FIRDatabase.database().reference()

self.ref.child("Users").child("UserID").childByAutoId().setValue(["Name": userName, "Email": userEmail])
var messageRef: FIRDatabaseReference = FIRDatabase.database().reference()
let uid = FIRAuth.auth()?.currentUser?.uid
messageRef.child("Users").child("UserID").child(self.uid!).child("Messages").childByAutoId().setValue(["Sender Name": Profile.sharedProfile.Name!,"Date": self.currentDate(),"Time": self.currentTime(), "Text": self.text.text!])


但是我想知道的是,你的第一段代码是不正确的。如果要将您的
消息
放在现有
用户
下,则应使用
child(self.uid!)
而不是
childByAutoId()
,因为第二种方法会在firebase DB中生成新实例。因此,您的代码应该如下所示:

var ref: FIRDatabaseReference! = FIRDatabase.database().reference()
self.ref.child("Users").child("UserID").child(self.uid!).setValue(["Name": userName, "Email": userEmail])

您的第一个代码块不正确。如果要将您的
消息
放在现有
用户
下,则应使用
child(self.uid!)
而不是
childByAutoId()
,因为第二种方法会在firebase DB中生成新实例。因此,您的代码应该如下所示:

var ref: FIRDatabaseReference! = FIRDatabase.database().reference()
self.ref.child("Users").child("UserID").child(self.uid!).setValue(["Name": userName, "Email": userEmail])