2017-01-16 13 views
3

新しいレルムモバイルプラットフォームは、しかし、ほとんどのチュートリアルは、それが例にどのように機能するかを示していない、オフラインサポートと宣伝されています...realmモバイルプラットフォーム、オフラインでの接続方法

例えばは、そのtodo app exampleで、これは、サーバーのデータベース

への接続に使用するコードです
SyncUser.logIn(with: .usernamePassword(username: username, password: password, register: false), server: URL(string: "http://127.0.0.1:9080")!) { user, error in 
guard let user = user else { 
    fatalError(String(describing: error)) 
} 

DispatchQueue.main.async { 
    // Open Realm 
    let configuration = Realm.Configuration(
     syncConfiguration: SyncConfiguration(user: user, realmURL: URL(string: "realm://127.0.0.1:9080/~/realmtasks")!) 
    ) 
    self.realm = try! Realm(configuration: configuration) 

    // Show initial tasks 
    func updateList() { 
     if self.items.realm == nil, let list = self.realm.objects(TaskList.self).first { 
      self.items = list.items 
     } 
     self.tableView.reloadData() 
    } 
    updateList() 

    // Notify us when Realm changes 
    self.notificationToken = self.realm.addNotificationBlock { _ in 
     updateList() 
    } 
} 
} 

ユーザーがオフラインになったときに、返さuser変数がnilである、とあなたは、サーバー上で設定レルムを使用するカントが、コードがミラーリングローカルデータベースから同期データを取得する方法を示していません。..ユーザーがオンラインになるたびに、オンラインデータベースから手動で作成したローカルデータベースにアイテムを手動でコピーする必要がありますか。

答えて

5

ユーザーをログインする(または登録する)と、デバイスのキーチェーンにキャッシュされ、currentUserプロパティで取得できます。また、オフラインでも複数のユーザーallがサポートされています。

ユーザーがlogoutに電話すると、キーチェーンから削除され、オンラインになって再度ログインする必要があります。

関連する問題