2016-11-24 132 views
2

我有一个登录屏幕,其中有电子邮件,密码。并且在用户注册后的注册屏幕上,他们将登录屏幕登录。如何检查用户是新用户还是旧用户

那个时候我需要检查一下,如果用户是第一次用户还是老用户。如果第一次用户意味着我需要将它们重定向到我的反馈屏幕。或者老用户意味着我需要将它们重定向到我的主屏幕。如何使用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

如果我正确理解你的问题,一旦用户登录,你想检查使用帐户的创建日期。要做到这一点,你有两种选择:

  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

因为你有第二选择的例子。我是新来的ios.Only我通过emailid,密码。但我不知道如何获得创建日期,而注册 – mack

+0

而且如果我今天注册,以及如果我登录10天后会发生什么。我如何处理这些数据? – mack

+0

请告诉我,在我的帖子中,我检查了个人资料数据,如果它是空的。但是,如何,它失败了 – mack

相关问题