ios - 如何查看用户是新用户还是老用户

标签 ios swift firebase firebase-authentication

我有一个登录屏幕,其中有电子邮件、密码。用户注册后在注册屏幕中,他们将来到登录屏幕进行登录。

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

        }

想到这样尝试。但是没有用。

最佳答案

如果我目前理解您的问题,一旦用户登录,您想检查使用帐户的创建日期。为此,您有两种选择:

  1. 服务器端。如果您使用的是 Firebase 数据库,只需添加创建日期。火力地堡 documantation不提供在应用端获取创建日期的方法。

  2. 应用端。用户用户默认,当用户第一次登录时为该用户设置日期。当您再次进入登录屏幕时,检查是否存在。我建议使用用户 ID 作为 key 。

例如: 您的用户刚刚登录,您想检查他是否是第一次登录:

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 .

摆弄代码以完全按照您的意愿行事。

关于ios - 如何查看用户是新用户还是老用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40787622/

相关文章:

ios - 分组 ios 推送通知目标

ios - 在自定义形状中设置和管理可编辑的 UITextview

ios - 即使在注册 fcm token ios 后也没有在设备上收到通知

ios - 如何在 swift 4 中正确地在 tableview Controller 单元格内的 tableview 中重新加载数据?

ios - 如何使用分发配置文件将 iPA 安装到特定设备

ios - Xcode:类型 'GameView' 的值没有成员 'view'

ios - 即使用户关闭应用程序,如何保持用户登录?我正在使用 swift 3 和 Firebase

firebase - 更改现有云 Firestore 集合中的数据模型?

swift - firestore 中的 "DatabaseHandle"是什么?

reactjs - Firebase 托管部署错误 : Task 5fc. .. 失败:6 次尝试后重试用尽