0
問題は、ユーザにログインしてデータベースにデータを挿入するとすべて正常に動作しますが、セクションを閉じて再びセクションを開始するとデータが何も挿入されずに倍増します。その原因は何ですか?Firebaseがデータを2倍にしています
ログインメト
@IBAction func loginButton(_ sender: Any) {
if validar() {
try! FIRAuth.auth()!.signOut()
FIRAuth.auth()?.signIn(withEmail: emailTextField.text!, password: passwordTextField.text!, completion: { (user, error) in
if user != nil {
self.performSegue(withIdentifier: "loginToPasswordBag", sender: self)
} else {
self.emailTextField.shake()
self.passwordTextField.shake()
}
})
}
}
保存データ方式
@IBAction func addPassword(_ sender: Any) {
FIRAuth.auth()?.addStateDidChangeListener({ (auth, user) in
if let user = user {
var password = [String:String]()
password["password"] = self.passwordTextField.text!
password["name"] = self.namePasswordTextField.text!
password["uid"] = user.uid
self.rootRef.child("passwords").childByAutoId().setValue(password)
}
})
}
私は再び最後に挿入されたオブジェクトは、それが行動そのaddStateDidChangeListener
火災時にあなたを期待されている
私は理解できません。しかし、アプリケーションの再起動時に 'addStateDidChangeListener'が起動することが予想されます。また、アプリの実行中に定期的に起動することもあります。ですから、 'addStateDidChangeListener'は' signInWithEmail'を呼び出すときだけ起動するという論理に頼るべきではありません。 –
オハイオ州私はあなたが正しいと思う、私は、ビューが変更された場合、ハンドラはもはや発射されないだろうと思った – luistejadaa