当用户尝试登录我的应用程序时,为什么还要创建另一个领域路径(默认/ _partial)?

时间:2019-05-15 02:26:49

标签: swift path realm

我对编程非常陌生,这是我第一次设置Realm Object Server以支持我的iOS应用。到目前为止,我遇到了一些挑战(而且我知道我才刚刚起步),尽管我下定决心要尽我所能,但我觉得很难理解现有的文档。现在,我陷入了登录用户(我为测试目的而创建的虚假用户)的登录过程。我可以注册一个新用户并将其数据写入我的应用默认Realm,但是如果我注销该用户然后尝试重新登录,则可以通过Realm Studio看到为该用户创建了另一个Realm Path,而另一个(空)用户对象是在默认Realm上创建的。为什么会这样?

我尝试过登录而未同步到任何Realm;我还尝试跳过SyncUser.login并通过检索realm.Objects并过滤与用户的用户名和密码匹配的对象来登录用户,并尝试了多种不同的编写SyncUser.login的形式,我在这里找到了这个方法(StackOVerFlow)和互联网。

这是我到目前为止的登录代码:

@IBAction func logInButtonTapped(_ sender:UIButton){

        let user = usernameTextField.text
        let pass = passwordTextField.text
        let url = "my---app.--.cloud.realm.io"
        let authURL = URL(string: "https://\(url)")

        let credentials = SyncCredentials.usernamePassword(username: user!, password: pass!)

        spinner.startAnimating()

        //logout current users: 
        for u in SyncUser.all {
            u.value.logOut()
            print("\(String(describing: u.value.identity)) is logged out")
        }

        SyncUser.logIn(with: credentials, server: authURL!) { user, error in
            if let user = user {
                Realm.Configuration.defaultConfiguration = user.configuration()
                Realm.asyncOpen() { realm, error  in
                 print("Login successful with Realm")
                 self.performSegue(withIdentifier: "loginSuccessSegue", sender: self)
                }
            } else {
                let alert = UIAlertController(title: "Sorry!", message: "We could not find your email address or password", preferredStyle: .alert)

                let action = UIAlertAction(title: "Try again", style: .cancel) { (action) in
                    //what will happen when the users presses Try again:
                    //avoid segue to Home screen
                    print("Invalid email or password")

                }
                alert.addAction(action)
                self.present(alert, animated: true, completion: nil)
            }
        }
    }

当我登录“假测试”用户时,我是为每次登录尝试创建此新“领域路径”的人吗?我看到我无法以这种方式保存任何用户数据,所以我试图了解这里发生的情况。很感谢任何形式的帮助!谢谢;)

0 个答案:

没有答案