首页 > 解决方案 > Firebase 无故注销某些用户

问题描述

我正在开发一个新应用程序,并且之前多次使用 Firebase 作为后端。我的代码(如下)应该在没有用户登录时执行 segue,在“worker”登录时不执行任何操作,并在“employer”登录时执行另一个 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)
                }
            }
        })
    }
}

标签: iosswiftfirebasefirebase-authenticationsegue

解决方案


推荐阅读