【问题标题】:Realm Object Server creating DB and ROS but not syncing领域对象服务器创建数据库和 ROS 但不同步
【发布时间】:2016-12-01 17:42:44
【问题描述】:

我已经在 AWS (RHAT) 上设置了一个领域对象服务器,它似乎工作正常。我可以查看仪表板,它告诉我有多少连接,以及在端口 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 领域的更改,以确保一切正常工作,但只有单一用户领域、表结构准确、零数据。

我检查了服务器上的日志文件,没有发现任何异常。

马特

【问题讨论】:

  • 这发生在我之前的用户名不是电子邮件地址格式时
  • 在帖子中的代码中,我将实际用户名替换为示例用户名。我的实际用户名是一个电子邮件地址。这是你所做的唯一改变吗?
  • 是的,而不是kecske 我做了kecske@xyz.com 然后它神奇地起作用了

标签: ios swift swift2 realm realm-mobile-platform


【解决方案1】:

在进行写入时,您需要确保仍然引用特定的 Realm(及其同步配置)。如果您尝试在此登录后写入 let realm = try! Realm(),您仍然会引用未同步的默认 Realm。

如果您打算让整个应用程序同步,您可以将特定的 Configuration 设置为您的默认 Realm:

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
}

否则,您总是可以在需要时生成配置(或者有一个可以为您管理它的全局常量类)。

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)

【讨论】:

  • 蒂姆,谢谢。从字面上看,我现在正在一架即将降落的航班上。今晚我将尝试进行增强,并在确认它有效后接受您的回答。听起来和我错过的基本作品一模一样。谢谢。
  • TiM 我们仍在努力让这一切正常工作,但我可以通过控制台中的更改看到我们正在到达 ROS 并且它正在同步。通过连接到 ROS 看不到它,但我认为这是一个单独的问题。已检查为正确答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
相关资源
最近更新 更多