gpt4 book ai didi

swift - Firebase 数据量翻倍

转载 作者:行者123 更新时间:2023-11-30 12:31:09 25 4
gpt4 key购买 nike

我遇到的问题如下,当我登录用户并将数据插入数据库时​​,一切正常,但是当我关闭部分并再次启动部分时,数据加倍而没有插入任何内容。这是什么原因呢?

登录方法

@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 仅在调用 signInWithEmail 时才会触发的逻辑。

关于swift - Firebase 数据量翻倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43546272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com