2016-04-22 18 views
0

こんにちは、私はFirebaseとSwiftを使って作業を始めようとしていますが、ユーザを認証してアプリを再起動しても永続的にするのに問題があります。永続的なユーザ認証Firebase Swift

私は認証されたときにユーザーのuidとすべてのものを含むFAuthDataオブジェクトを返すTwitter authHelperを使用しています。

私が(またはシステム)アプリケーションを殺すと、すべての認証が吹き飛ばされ、私は "authData"オブジェクトを格納していないので、私は再ログインする必要があります。

どうすればよいですか?

はあなたにNSUserDefaultsを使用している、これを行うための最善の方法

+0

Firebaseは認証トークンを自動的にユーザのキーチェーンに保存します。ビューコントローラで[認証状態を監視する](https://www.firebase.com/docs/ios/guide/user-auth.html#section-monitoring-authentication)の場合は復元する必要があります。しかし、あなたのコードを見ることなく、何が起こっているのかを言うことは不可能です。 [MCVE](http://stackoverflow.com/help/mcve)を提供してください。 –

+0

Use RealmSwiftはNSUserDefaultsの最良の代替手段であり、RealmはNSUserDefaultsよりも速く動作します。 –

答えて

1

そんなにありがとう。ユーザーは次回は、するかどうかを確認するために、次のチェックを行うアプリを開くと

FIRAuth.auth()!.createUserWithEmail(email, password: pwd, completion: { authData, error in 

      if error == nil { 
       //enable automatic login for future usage 
       NSUserDefaults.standardUserDefaults().setValue(authData?.uid, forKey: "uid")  
}) 

:これは、以下の方法(これはあなたがFIRAuthを使用しているが、Twitterのログインがあなたに同じauthDataを与えると仮定し)で行うことができますまたはユーザがログインしていないかどうかを確認します。

if NSUserDefaults.standardUserDefaults().valueForKey(KEY_UID) != nil { 
     dispatch_async(dispatch_get_main_queue()) { 
      [unowned self] in 
      self.performSegueWithIdentifier(SEGUE_LOGGED_IN, sender: nil) 
     } 
    } 
関連する問題