私はユーザーの詳細ページ(ユーザー名、phno、電子メールとパスワード)を更新しようとしています。電子メールフィールドを更新することができますが、更新された場合は両方のユーザーと認証になりません。ここswift2.2firebaseの現在のユーザの電子メールとパスワード(ユーザノードと認証の両方)を更新する方法は?
でplzはコードの私userDeatilsViewController
はclass UserDetailsViewController: UIViewController {
var user:UserDetails?
let userRegister = UserInfo()
var user_name:String?
var first_name:String?
var last_name:String?
var ph_no:String?
var e_mail:String?
var pass_word:String?
var activeField: UITextField?
@IBOutlet var Username: UITextField!
@IBOutlet var Firstname: UITextField!
@IBOutlet var Lastname: UITextField!
@IBOutlet var email: UITextField!
@IBOutlet var phNo: UITextField!
@IBOutlet var password: UITextField!
var rootRef: FIRDatabaseReference! {
return FIRDatabase.database().reference()
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
let userRef = FIRDatabase.database().reference().child("users")
userRef.observeEventType(.Value, withBlock: { (snapshot) in
for userInfo in snapshot.children {
self.user = UserDetails(snapshot: userInfo as! FIRDataSnapshot)
print(self.user)
}
if let user = self.user{
self.Username.text = user.username
self.Firstname.text = user.firstname
self.Lastname.text = user.lastname
self.email.text = user.email
self.phNo.text = user.phno
}
})
self.navigationController?.popViewControllerAnimated(true)
}
@IBAction func reset(sender: AnyObject) {
let userRef = FIRDatabase.database().reference().child("users")
if Username.text == "" {
Username.text = "enter title"
} else {
user_name = Username.text
}
if Firstname.text == ""{
Firstname.text = "Firstname Missing"
} else {
first_name = Firstname.text
}
if Lastname.text == "" {
Lastname.text = "Lastname Missing"
} else {
last_name = Lastname.text
}
if phNo.text == "" {
phNo.text = "Phno Missing"
} else {
ph_no = phNo.text
}
if email.text == "" {
email.text = "email Missing"
} else {
if let user = FIRAuth.auth()?.currentUser {
user.updateEmail(email.text!, completion: { (error) in
if let error = error{
print(error.localizedDescription)
} else {
let alertView = UIAlertView(title: "Update Email", message: "email Updated", delegate: self, cancelButtonTitle: "Ok")
alertView.show()
}
})
self.e_mail = self.email.text
print(self.e_mail)
}
}
let updatenote = UserDetails(username: user_name!, firstname: first_name!, lastname: last_name!, email: e_mail!, phno: ph_no!)
print(updatenote)
let key = user!.ref!.key
print(key)
let updateRef = rootRef.child("https://stackoverflow.com/users/\(key)")
updateRef.updateChildValues(updatenote.toAnyObject())
navigationController?.popViewControllerAnimated(true)
}
は、私は、パスワード以外のページ内のすべてのユーザの詳細を取得しonly..Firstメールを更新する必要がありますテキストフィールド..パスワードを変更する必要がある場合(別のボタンアクション)、そうでない場合は他のフィールドを更新するだけです。 – tecE
上記のサンプルを使用する場合は...パスワード文字列が無限になりますか? – tecE