Firebase不必要地注销某些用户

时间:2019-06-12 20:00:43

标签: ios swift firebase firebase-authentication segue

我正在开发一个新应用程序,之前曾多次将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)
                }
            }
        })
    }
}

0 个答案:

没有答案