领域对象服务器创建数据库和 ROS 但不同步
Realm Object Server creating DB and ROS but not syncing
我已经在 AWS (RHAT) 上设置了一个 Realm 对象服务器,它似乎工作正常。我可以查看仪表板,它会告诉我有多少个连接以及多少个领域在端口 9080 上打开。我的代码在设备上运行良好,更新正在设备领域上发生。但我没有看到 ROS 领域有任何变化。我可能犯了一些非常基本的错误,但我不知道是什么。
func setupRealm() {
// Authenticating the User
let username = "exampleuser"
let password = "examplepassword"
SyncUser.logInWithCredentials(SyncCredentials.usernamePassword(username, password: password), authServerURL: NSURL(string: "http://example.com:9080")!, onCompletion:
{ user, error in
if let user = user {
// Opening a remote Realm
let realmURL = NSURL(string: "realm://example.com:9080/~/VWF3")!
let config = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user, realmURL: realmURL))
let realm = try! Realm(configuration: config)
// Any changes made to this Realm will be synced across all devices!
} else if let error = error {
// handle error
}
})
}
我从 ViewDidLoad 调用 setupRealm()。
我的开发人员需要能够看到 ROS 领域的变化,以确保一切正常工作,但那里只有单个用户领域,表结构准确,数据为零。
我检查了服务器上的日志文件,没有发现任何异常。
马特
您需要确保在写入时仍指的是特定的 Realm
(及其同步配置)。如果您在这次登录后尝试写入 let realm = try! Realm()
,您仍然会引用您的默认领域,该领域未同步。
如果您打算同步整个应用程序,您可以将特定的 Configuration
设置为您的默认领域:
if let user = user {
// Opening a remote Realm
let realmURL = NSURL(string: "realm://example.com:9080/~/VWF3")!
let config = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user, realmURL: realmURL))
Realm.Configuration.defaultConfiguration = configuration
// All calls to `Realm()` will now use this configuration
}
否则,您始终可以在需要时生成配置(或者有一个全局常量 class 可以为您管理)。
let realmURL = NSURL(string: "realm://example.com:9080/~/VWF3")!
let configuration = Realm.Configuration()
configuration.syncConfiguration = SyncConfiguration(user: SyncUser.current, realmURL: realmURL))
let realm = try! Realm(configuration: configuration)
我已经在 AWS (RHAT) 上设置了一个 Realm 对象服务器,它似乎工作正常。我可以查看仪表板,它会告诉我有多少个连接以及多少个领域在端口 9080 上打开。我的代码在设备上运行良好,更新正在设备领域上发生。但我没有看到 ROS 领域有任何变化。我可能犯了一些非常基本的错误,但我不知道是什么。
func setupRealm() {
// Authenticating the User
let username = "exampleuser"
let password = "examplepassword"
SyncUser.logInWithCredentials(SyncCredentials.usernamePassword(username, password: password), authServerURL: NSURL(string: "http://example.com:9080")!, onCompletion:
{ user, error in
if let user = user {
// Opening a remote Realm
let realmURL = NSURL(string: "realm://example.com:9080/~/VWF3")!
let config = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user, realmURL: realmURL))
let realm = try! Realm(configuration: config)
// Any changes made to this Realm will be synced across all devices!
} else if let error = error {
// handle error
}
})
}
我从 ViewDidLoad 调用 setupRealm()。
我的开发人员需要能够看到 ROS 领域的变化,以确保一切正常工作,但那里只有单个用户领域,表结构准确,数据为零。
我检查了服务器上的日志文件,没有发现任何异常。
马特
您需要确保在写入时仍指的是特定的 Realm
(及其同步配置)。如果您在这次登录后尝试写入 let realm = try! Realm()
,您仍然会引用您的默认领域,该领域未同步。
如果您打算同步整个应用程序,您可以将特定的 Configuration
设置为您的默认领域:
if let user = user {
// Opening a remote Realm
let realmURL = NSURL(string: "realm://example.com:9080/~/VWF3")!
let config = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user, realmURL: realmURL))
Realm.Configuration.defaultConfiguration = configuration
// All calls to `Realm()` will now use this configuration
}
否则,您始终可以在需要时生成配置(或者有一个全局常量 class 可以为您管理)。
let realmURL = NSURL(string: "realm://example.com:9080/~/VWF3")!
let configuration = Realm.Configuration()
configuration.syncConfiguration = SyncConfiguration(user: SyncUser.current, realmURL: realmURL))
let realm = try! Realm(configuration: configuration)