當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的應用程序,所以我在這種情況下沒有太多經驗。