Swift3 如何在Firebase中以当前uid保存数据
我无法将新数据(“消息”)保存到当前用户 将用户信息推送到Firebase的我的代码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
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])