2016-11-24 12 views
2

私は電子メール、パスワードを持つ1つのログイン画面を持っています。ユーザー登録後の登録画面ではログイン画面に来てログインします。ユーザーが新規ユーザーか古いユーザーかを確認する方法

その時間は、ユーザーが初回ユーザーか古いユーザーかを確認する必要があります。初めてのユーザーの場合は、フィードバック画面にリダイレクトする必要があることを意味します。または古いユーザーは、それらを私のホーム画面にリダイレクトする必要があることを意味します。どのようにfirebaseでそれを行うには?

ログイン画面ための彼女の私のコード:私のフィードで

@IBAction func loginWithUserNamePassword(){ 


    loginWithMailAndPassword((username.text?.trimWhiteSpace)!, password: (password.text?.trimWhiteSpace)!) { (user, error) in 

     if error != nil{ 

      KRProgressHUD.dismiss() 
      SCLAlertView().showError("Login Error", subTitle: error!.localizedDescription) 


     } 
     else { 
      KRProgressHUD.dismiss() 
      if user!.emailVerified{ 
       currentUser = user 
       enableSync() 
       self.callHomescreen() 
      } 
      else 
      { 
       AlertView().showError("Login Error", subTitle: "This email is has not been verified yet") 
      } 
     } 

     } 

    } 

もないとバックいくつかのテキストフィールドがある画面が表示されます。そして、モデルクラスは次のとおりです。

var feedbackData = [files]() 

class files { 
// having some string variables 
} 

これを使用することにより、私のデータは、私のフィードバック画面に空の場合、フィードバック画面にユーザーをリダイレクトするか、他のホーム画面にリダイレクト。それはできますか?

更新:このようにしようとの

if profileData.FirstName.characters.count <= 0 { 


      print("Home screen calling") 

     } 

     else if profileData.FirstName.characters.count > 0 { 
      print("feedback screen calling") 

     } 

思想。しかし、使用しないでください。

答えて

0

あなたの質問を正しく理解していれば、ユーザーがログインすると、使用アカウントの作成日を確認する必要があります。これを行うには、2つのオプションがあります。

  1. サーバー側。 Firebaseデータベースを使用している場合は、作成日を追加するだけです。 Firebase documantationには、アプリ側で作成日を取得する方法はありません。

  2. アプリ側。最初のユーザーログインでそのユーザーの日付が設定されると、ユーザーのユーザーの既定値。もう一度ログイン画面が表示されたら、存在を確認します。私はキーとしてユーザーIDを使用することをお勧めします。例えば

あなたのユーザーだけでログインし、あなたがそれならば、彼がしたことを初めて確認したい:

if let displayName = FIRAuth.auth()?.currentUser?.displayName { 
    //Make sure we have the user 
    if UserDefaults.standard.bool(forKey: displayName) { 
     // try to get the user default for the spacific key 
     let wasConnected = UserDefaults.standard.bool(forKey: displayName) 
     if wasConnected { 
      print("This user was connected") 
     } 
    } else { 
     // This user was never connected 
     // We set the default to his ID 
     UserDefaults.standard.set(true, forKey: displayName) 
     UserDefaults.standard.synchronize() 
    } 
} 

を、日付を使用するには、私が最も簡単な方法があると思いますconvert the date to stringになります。

あなたが欲しいものを正確に行うためにコードを練習してください。

+0

あなたには2番目の選択肢の例があります。私はiosに新しいです。私はemailid、パスワードを渡しているだけです。しかし、登録している間に作成された日付を取得する方法はわかりません – mack

+0

また、もし私が今日登録していれば、10日後にログインするとどうなりますか?データをどうすればいいですか? – mack

+0

私のポストで私に教えてください私はそれが空の場合は、プロファイルのデータ数をチェックしている。しかし、どのように、それは失敗する – mack

関連する問題