レルムオブジェクトサーバのIPが異なると問題が発生します。アプリケーションはCredentialを使用してログインできますが、それ以降はデータベースがそのIP上に座っていても空のデータが返され、Realm Browserからアクセスできます。実際には、私はrealmオブジェクトサーバーで1つのアカウントしか使用せず、ユーザー名とパスワードを使用してユーザーテーブルを作成し、Credentialをサーバーに接続した後、ユーザー名とパスワードを画面上で読み取り、データベース内の情報を確認します。レルムオブジェクト・サーバ機能へレルムオブジェクトサーバのIPアドレスを変更する
接続:SyncUserすることにより、ログイン後のテーブルから
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()
}
}
問合せ:
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を使用した私の最初のアプリケーションであり、このような状況ではあまり経験がありません。