当Realm对象服务器具有不同的IP时,我遇到问题。应用程序可以通过Credential登录,但在此之后它将返回空数据,尽管我的数据库正好位于该IP上并且可以被Realm Browser访问。实际上,我只在realm对象服务器中使用一个帐户,并使用用户名和密码创建用户表,以便在通过Credential连接到服务器之后,我将在屏幕上读取用户名和密码并在数据库中检查它的信息。更改Realm对象服务器中的IP地址
连接到域对象服务器功能:
class func login(username: String, password: String, action: AuthenticationActions, completionHandler: @escaping()->()) {
let serverURL = NSURL(string: realmIP)!
let credential = Credential.usernamePassword(username: username, password: password, actions: [action])
SyncUser.authenticate(with: credential, server: serverURL as URL) { user, error in
if let user = user {
syncUser = user
let syncServerURL = URL(string: realmURL)!
let config = Realm.Configuration(syncConfiguration: (user, syncServerURL))
realm = try! Realm(configuration: config)
} else if error != nil {
}
completionHandler()
}
}
从表中查询登录后SyncUser:
class func loginLocal(employee: String) -> Bool{
let predicate = NSPredicate(format: "employee = %@", employee)
if (realm != nil) {
let user = realm?.objects(MyUser.self).filter(predicate)
if ((user?.count)! > 0) {
return true
}
}
return false
}
的解决方案似乎是不可思议,好让我通过调用一个函数多次按我的登录按钮,并希望它会通过服务器。
这是我第一次使用Realm和Realm Object Server的应用程序,所以我在这种情况下没有太多经验。