我正在尝试将新值插入 Firebase 实时数据库。但是每次我“注册”一个新用户时,我的数据库数据都会被新用户替换。我完全不知道如何才能做到这一点。
这是我的代码..
//Create a new user with txtfield email & password
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
//Printing error if any
if error != nil
{
print(error as Any)
return
}
//Getting database reference
let ref = Database.database().reference()
//Values to insert into database
let values = ["Username": self.username, "Email": self.email, "Name1": self.name1, "Name2": self.name2, "Name3": self.name3, "Name4": self.name4, "Name5": self.name5, "Name6": self.name6, "Dog1": dog1, "Dog2": dog2, "Dog3": dog3]
//Updating the child values
ref.updateChildValues(values, withCompletionBlock: { (err, ref) in
//Printing error if any
if err != nil
{
print(err as Any)
return
}
//Succeded if no errors
print("Saved user successfully in Firebase database!")
})
我认为问题出在
ref.updateChildValues(values, withCompletionBlock: { (err, ref) in
但我不知道如何替换它。所以为了让它简短。 每次我创建新用户时,数据库数据都会被替换。我基本上希望它为每个用户创建一个新的“行”。
最佳答案
您需要在子项下插入项目,例如 users/userID
guard let firUser = authResult.user else { return }
let userID = firUser.uid
let ref = Database.database().reference()
let user = ref.child("users/\(userID)")
user.updateChildValues////
数据库
> users
> njfjnjnf889489489 // some user uid
> name
> mail
> 322jnjnf889489483 // some user uid
> name
> mail
关于ios - 在 firebase 中插入而不是更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54807786/