使用FIRAuth.auth()?。signIn(withEmail,GIDSignIn.sharedInstance()。hasAuthInKeychain()的日志记录为空

时间:2017-04-02 07:34:26

标签: swift firebase firebase-authentication google-signin google-login

在我的Swift应用中,我已设法使用Google按钮登录,如清楚here

所述

我还想按照these步骤

使用电子邮件/密码方法登录Firebase中的用户

问题是用户登录后总是假的

if GIDSignIn.sharedInstance().hasAuthInKeychain(){

Firebase如何登录“更新”hasAuthInKeychain以检查用户是否已登录?

1 个答案:

答案 0 :(得分:0)

我在这里遇到了同样的问题,但我终于找到了答案。

请查看此post

public func resetUserDafault() {

   let userDefaults = UserDefaults.standard

   let dict = UserDefaults.standard.dictionaryRepresentation()

   for key in dict.keys {

       //GoogleSignIn take this key to check previous signin status

       if key == "GID_AppHasRunBefore"{

           continue

       }

       userDefaults.removeObject(forKey: key);

  }

  UserDefaults.standard.synchronize()

}

override func viewDidLoad() {

    super.viewDidLoad()

    //After doing it, my application is working properly now.

    if GIDSignIn.sharedInstance().hasAuthInKeychain() == true{

        GIDSignIn.sharedInstance().signInSilently()

    }
    else{

        //not sign in

    }

}