我正在开发一个新应用程序,之前曾多次将Firebase用作后端。我的代码(如下)应该在没有用户登录时执行segue,在“工作人员”登录时不执行任何操作,而在“雇主”登录时执行另一次segue。这工作正常,但是出现一个问题。当“工作人员”登录并重新运行该应用程序时,它们仍保持登录状态。另一方面,当“雇主”登录时执行了正确的命令,但是当该应用程序重新运行时(我这样做以便我在关闭应用程序后可以看到控制台),它们已注销,并且以当前用户的身份返回nil。这将注销先前登录的雇主。有什么帮助吗?我的代码:
override func viewDidLoad() {
super.viewDidLoad()
var ref: DatabaseReference!
ref = Database.database().reference()
let uid = Auth.auth().currentUser?.uid
let locationReference = ref.child("locations")
print("CURRENT USER:")
print(uid)
print(Auth.auth().currentUser)
if Auth.auth().currentUser == nil {
print("SEGUE RAN")
self.performSegue(withIdentifier: "notSignedIn", sender: nil)
}
else if Auth.auth().currentUser != nil {
print("UNO")
Database.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
print("DOS")
let isWorker1 = dictionary["Worker"] as? Bool
print("IS WORKER:")
print(isWorker1)
if isWorker1 == true {
}
else if isWorker1 == false {
print("TRES")
self.performSegue(withIdentifier: "notWorker", sender: nil)
}
}
})
}
}