菜鸟教程小白 发表于 2022-12-11 18:07:52

ios - 如何判断用户是新用户还是老用户


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

<p>那个时候我需要检查用户是第一次使用还是老用户。如果第一次用户意味着我需要将他们重定向到我的反馈屏幕。或者老用户意味着我需要将他们重定向到我的主屏幕。如何用 Firebase 做到这一点?</p>

<p>她的登录屏幕代码:</p>

<pre><code> @IBAction func loginWithUserNamePassword(){


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

      if error != nil{

            KRProgressHUD.dismiss()
            SCLAlertView().showError(&#34;Login Error&#34;, subTitle: error!.localizedDescription)


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

      }

    }
</code></pre>

<p>否则在我的反馈屏幕中有一些文本字段。模型类是:</p>

<pre><code>var feedbackData = ()

class files {
// having some string variables
}
</code></pre>

<p>通过使用它,如果我的反馈屏幕中的数据为空,则将用户重定向到反馈屏幕,或者将他们重定向到主屏幕。我们可以这样做吗?</p>

<p>更新:</p>

<pre><code>if profileData.FirstName.characters.count &lt;= 0 {


             print(&#34;Home screen calling&#34;)

      }

      else if profileData.FirstName.characters.count &gt; 0{
             print(&#34;feedback screen calling&#34;)

      }
</code></pre>

<p>想过这样尝试。但是没有用。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果我正确理解你的问题,一旦用户登录,你想检查使用帐户的创建日期。为此,您有两种选择:</p>

<ol>
<li><p>服务器端。如果您使用 Firebase 数据库,只需添加创建日期。火力基地 <a href="https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIRUser" rel="noreferrer noopener nofollow">documantation</a>不提供在应用端获取创建日期的方法。</p></li>
<li><p>应用端。用户用户默认,当用户第一次登录时为该用户设置日期。当您再次进入登录屏幕时,请检查是否存在。我建议使用用户 ID 作为 key 。</p></li>
</ol>

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

<pre><code>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(&#34;This user was connected&#34;)
      }
    } else {
      // This user was never connected
      // We set the default to his ID
      UserDefaults.standard.set(true, forKey: displayName)
      UserDefaults.standard.synchronize()
    }
}
</code></pre>

<p>要使用日期,我认为最简单的方法是<a href="https://stackoverflow.com/questions/25686284/from-string-to-nsdate-in-swift" rel="noreferrer noopener nofollow">convert the date to string</a> .</p>

<p>修改代码来做你想做的事。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何判断用户是新用户还是老用户,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/40787622/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/40787622/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何判断用户是新用户还是老用户