如何在 Ubuntu 上写入 Realm 对象服务器

2024-03-11

我已经完成了 Realm 移动平台教程(link https://realm.io/docs/realm-mobile-platform/example-app/cocoa/)。您创建一个 Swift 任务应用程序。

我能够让应用程序和服务器在我的本地 Mac 上正常工作。我能够将任务添加到表格视图中。

然后我在 DigitalOcean 上创建了一个 Ubuntu 16.04 Droplet。我设法让服务器运行并能够查看领域仪表板。

问题是,当我使用新的服务器 IP 地址(ubuntu 实例)运行应用程序时,我看到“添加任务”弹出,但没有任务添加到应用程序的表格视图中。

以下代码将任务添加到数据库:

try! items.realm?.write {
 items.insert(Task(value: ["text": text]), at: items.filter("completed = false").count)
}

当我在本地计算机上运行代码时,它会插入值,但insert当我使用远程服务器时,线路永远不会被命中。

这是我将 Realm 配置设置为新 url 的位置:

let configuration = Realm.Configuration(
                syncConfiguration: (user, URL(string: "realm://128.199.119.xxx:9080/~/realmtasks")!)
        )

是否需要更新 Realmconfiguration.yml当您将其部署到远程服务器时,文件?如果有的话,有没有人有configuration.yml示例或需要做什么才能获得文件设置?

在教程视频中提到 info.plist 需要更新。对于访问已部署服务器的应用程序或应用程序商店中的应用程序,info.plist 的以下版本是否相同?

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

这是结果cat /var/log/realm-object-server.log:

2016-10-29T03:09:06.501Z - info: sync-server: Connection[5]: Connection from 127.0.0.1:58822
2016-10-29T03:09:06.631Z - info: sync-server: Connection[5]: Received: CLIENT(protocol_version=15, client_info_size=2, client_info='{}')
2016-10-29T03:09:06.788Z - info: sync-server: Connection[5]: Session[1]: Session initiated (session_ident=1).
2016-10-29T03:09:06.789Z - info: sync-server: Connection[5]: Session[1]: Received: BIND(server_path=/72c5a/realmtasks, signed_user_token='...xxm/7UjDkuEqQ==', need_file_ident_pair=0)
2016-10-29T03:09:06.789Z - info: sync-server: Connection[5]: Session[1]: Received: IDENT(server_file_ident=21314, client_file_ident=1, client_file_ident_secret=1477, scan_server_version=2, scan_client_version=2, latest_server_version=2, latest_server_session_ident=1643)
2016-10-29T03:09:17.069Z - info: sync-server: Connection[5]: Session[1]: Session terminated (session_ident=1).
2016-10-29T03:09:17.070Z - info: sync-server: Connection[5]: Connection closed by client: End of input
2016-10-29T03:09:26.769Z - info: sync-server: Connection[6]: Connection from 127.0.0.1:58866
2016-10-29T03:09:26.895Z - info: sync-server: Connection[6]: Received: CLIENT(protocol_version=15, client_info_size=2, client_info='{}')
2016-10-29T03:09:27.053Z - info: sync-server: Connection[6]: Session[1]: Session initiated (session_ident=1).
2016-10-29T03:09:27.053Z - info: sync-server: Connection[6]: Session[1]: Received: BIND(server_path=/a4fdec5a/realmtasks, signed_user_token='...K0k7mw==', need_file_ident_pair=0)
2016-10-29T03:09:27.053Z - info: sync-server: Connection[6]: Session[1]: Received: IDENT(server_file_ident=21094, client_file_ident=1, client_file_ident_secret=14907, scan_server_version=2, scan_client_version=2, latest_server_version=2, latest_server_session_ident=164553)

对象服务器正在运行,我可以看到任务和任务列表表,但无法将记录写入表中。

当我检查时auth.log我得到以下内容

Nov  1 10:53:22 digitalocean sshd[13684]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.229.172.111  user=root
Nov  1 10:53:49 digitalocean sshd[13701]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.229.172.111  user=root
Nov  1 10:53:50 digitalocean sshd[13701]: Failed password for root from 221.229.172.111 port 43992 ssh2
Nov  1 10:53:55 digitalocean sshd[13701]: message repeated 2 times: [ Failed password for root from 221.229.172.111 port 43992 ssh2]
Nov  1 10:53:55 digitalocean sshd[13701]: Received disconnect from 221.229.172.111 port 43992:11:  [preauth]
Nov  1 10:53:55 digitalocean sshd[13701]: Disconnected from 221.229.172.111 port 43992 [preauth]
Nov  1 10:53:55 digitalocean sshd[13701]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.229.172.111  user=root

我想我发现了问题。

在教程的updateList()功能:

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

self.items永远不会被设置,因为self.realm.objects(TaskList.self).first将返回 nil 直到有任务添加到列表中。您需要添加一个任务(在我的例子中使用 Mac 版本的应用程序),然后 iOS 版本的代码才能工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 上写入 Realm 对象服务器 的相关文章

随机推荐

  • 如何获取 Rails 控制器中活动存储中存储的附件的 URL

    如何获取存储在 Rails 控制器的活动存储中的 has one 模型附件的 URL 因此 我可以将其作为完整链接作为 json 中的 api 发送 到目前为止 我已经尝试过以下方法 但每个方法都给出了不同的问题 current user
  • 组合两个 matplotlib 颜色图

    我想将两个颜色图合并为一个 这样我就可以使用一个cmap一个用于负值 另一个用于正值 目前 我使用屏蔽数组来完成此操作 并用一张图像绘制一张图像cmap以及另一个图像与另一个图像 结果是 有以下数据 dat np random rand 1
  • 使用 Clearcase 递归签入

    我想将一个目录和所有子目录签入到透明案例中 有具体的命令可以实现吗 目前我正在进入每个目录并手动检查每个文件 我会推荐这个问题 https stackoverflow com questions 33577 how do i perform
  • 如何在 JavaScript 中循环遍历 JSON 关联数组?

    我从服务器收到 JSON 响应 并且必须在 javascript 中循环遍历数组并获取值 但我似乎无法循环遍历它 数组的 JSON 响应如下所示 1 Schools 20 Profiles 31 Statistics 44 Messages
  • 在 Facelet 模板中包含非 Facelet 内容

    有没有办法将 html 文件的内容插入到 Facelet 模板中 Facelets 标签不起作用 因为它仅用于包含 Facelet 内容 换句话说 我正在寻找相当于 JSP include 指令的 Facelets 我可能不明白你需要什么
  • 如何等待一组异步回调函数?

    我的代码在 javascript 中看起来像这样 forloop async call returns an array to its callback 所有这些异步调用完成后 我想计算所有数组的最小值 我怎样才能等到他们所有人呢 我现在唯
  • TFS 电子邮件通知

    当我在 TFS 中添加错误 工作项 并将其分配给用户时 我希望向该用户发送一封电子邮件 此外 如果现有错误的 分配给 发生更改 我希望该用户收到一封电子邮件 当用户在 TFS 2008 中分配了更改的错误时 是否可以向用户发送警报 至少在
  • 指令在 Spray 中如何工作?

    我想了解 Spray 中的指令如何工作 根据文档 http spray io documentation 1 1 SNAPSHOT spray routing key concepts directives 指令的一般结构如下 name a
  • 通过WCF发送图像的有效方法?

    我正在通过从头开始编写 VNC 等自定义远程控制应用程序来学习 WCF LINQ 和其他一些技术 我创建它时考虑了三个主要目标 服务器将在应用程序级别 即无缝窗口 提供 远程控制 而不是完整的桌面访问 客户端可以选择服务器上运行的任意数量的
  • 内存分配和 **argv 参数[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我知道我们使用这个论证的目的 我什至知道如何使用这个论证 只有一件事我仍然不明白 程序如何为来自输入的字符串分配内存 argv 在程序开始时
  • Safari 11.0.3 无法识别内容安全策略哈希

    我有一个元标记 其中包含以下指令 然后 我在页面下方有 2 个内联脚本 每个脚本都应与策略中生成的 sha 之一匹配 在 Chrome 和 Firefox 中 我没有收到任何投诉 我的脚本按预期运行 在 Safari 版本 11 0 3 1
  • 在添加另一个标记之前检查现有标记

    谷歌地图 API v2当我等待另一个应用程序完成时 我出于兴趣创建了另一个应用程序 该应用程序一次只能将 1 个标记添加到地图中 我喜欢我做的地图 我目前有这段代码 如果标记已存在 它将清除地图 然后添加另一个标记 但我想要的是它显示一条消
  • `tools:replace="android:supportsRtl"` 可以与 `tools:ignore="AllowBackup"` 一起使用吗?

    正如张贴在https stackoverflow com a 39178185 3286489 https stackoverflow com a 39178185 3286489 解决如下错误 Error Execution failed
  • 当我单击外部提供商按钮时,为什么我的网站会重定向回登录屏幕?

    我正在将 ASP Net MVC4 站点升级到 MVC5 并在此过程中实现新的 OWIN 身份验证方法 我已从空白 MVC5 项目上的帐户控制器复制了操作方法 问题是 当我单击外部提供商按钮 例如 Google 时 我只是再次重定向回登录页
  • 文本文件中字符串中的两个单词

    我正在尝试在字符串中获取两个单词 但我不知道该怎么做 我尝试过 但如果在文本文件中我有 姓名 Penny Marie 它会给我 姓名 Penny 我怎样才能在s1中获得Penny Marie 谢谢 include
  • 如何比较两个字符串在每个索引处的字符?

    我有两个长度相同的字符串 我想按元素比较字符串并为每个索引返回 TRUE 或 FALSE 例如 string1 lt abcd1234 string2 lt abcd1434 result lt T T T T T F T T 到目前为止
  • org.postgresql.util.PGobject 无法转换为 org.postgis.PGgeometry

    当我尝试从 PostGIS 数据库加载点时 我得到以下信息 例外 Caused by java lang ClassCastException org postgresql util PGobject at org hibernatespa
  • Chrome 浏览器操作弹出窗口是否有硬编码的最大高度?

    我无法使 Chrome 扩展程序的 browseraction 弹出窗口高度超过 600 像素 我通过 document body style height 控制它 这是硬编码的最大值吗 我正在 OS X Lion 上使用 Chrome v
  • 如何将数组传递给需要 var args 的 objc 方法(例如...')

    我在库中有一个方法 如下所示 id initWithSomeObjects NSString something NS REQUIRES NIL TERMINATION 我真的很想用数组而不是 var args 来调用它 因为我想传入的对象
  • 如何在 Ubuntu 上写入 Realm 对象服务器

    我已经完成了 Realm 移动平台教程 link https realm io docs realm mobile platform example app cocoa 您创建一个 Swift 任务应用程序 我能够让应用程序和服务器在我的本