检查用户是不是有效 Parse (Swift)

Posted

技术标签:

【中文标题】检查用户是不是有效 Parse (Swift)【英文标题】:Check if user is valid Parse (Swift)检查用户是否有效 Parse (Swift) 【发布时间】:2017-04-20 19:18:17 【问题描述】:

我现在的问题是,如果数据库中的用户发生了一些变化(测试期间手动更改),客户端缓存的用户不会被更新。我知道我需要使用 fetch() 或其中一种变体(背景,如果需要),但我真的不知道如何。

这是我当前在 AppDelegate 中的代码,用于确定是显示登录屏幕还是进入主应用程序。

        // Decide which controller to go to
        self.window = UIWindow.init(frame: UIScreen.main.bounds)

        var sb: UIStoryboard? = nil
        if (PFUser.current() != nil) && (PFUser.current()?.isAuthenticated)! 
            sb = UIStoryboard(name: "Main", bundle: nil)
         else 
            sb = UIStoryboard(name: "SetupUser", bundle: nil)
        

        let vc = sb?.instantiateInitialViewController()
        self.window?.rootViewController = vc
        self.window?.makeKeyAndVisible()

这在大多数情况下都有效,但如果用户从数据库中更新或删除,则应用将继续运行并在稍后由于更新/保存对象时出错而崩溃。

【问题讨论】:

【参考方案1】:

我建议使用带有完成块的fetchInBackground

 PFUser.current()?.fetchInBackground(block :  (user, error) in
          if let user = user 
             //show Main
          else 
             //showLogin
           

    )

这样你在获取用户后执行你的逻辑。

【讨论】:

我应该有一个占位符视图,因为它这样做不只是有一个空白屏幕,然后将代码放在占位符控制器中吗? 是的,这会带来更好的用户体验。它可以与您拥有的 LaunchScreen 视图相同,但您也可以制作动画以“分散”用户的注意力,直到获取完成,然后继续 Main/Login 谢谢。我有一个类似的想法,但无法弄清楚如何实现它。

以上是关于检查用户是不是有效 Parse (Swift)的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是包含int? -迅速

检查字符串是不是是 Typescript 中的有效 JSON

检查用户名是不是已经存在:Swift、Firebase

Firestore/Swift 4:检查用户名是不是存在?

检查用户是不是已在 Swift 中注册本地通知时出错

FBSDK 检查用户是不是已经授权应用程序 Swift