问题标签 [realm-object-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
515 浏览

realm - 领域对象服务器和 iCloud

如何使用 iCloud 向 Realm 对象服务器进行身份验证?

我知道我必须login使用“iCloud 令牌”打电话,但无法找到如何获取此令牌。

到目前为止,我能找到的是:FileManager.default.ubiquityIdentityToken根据文档,它“包含一个表示当前用户身份的不透明对象”。这似乎行不通。

此外,使用 iCloud 作为身份验证的正常工作流程是什么,我是否在凭据/Facebook/Twitter 登录旁边显示一个按钮?感觉有点奇怪,因为 iOS 用户通常不必登录 iCloud。或者我是否默认使用 iCloud 登录,如果用户使用其他提供商登录,我会从 iCloud 注销?这种工作流程也感觉很奇怪。

谢谢

0 投票
1 回答
669 浏览

ios - 是否可以在没有索引的情况下使用 Realm 对象服务器实时同步?

我正在研究 Realm 的“任务”示例应用程序中实现的实时同步。

特别是,这个块:

基本上,更改是使用索引来传达的。通过使用这些索引简单地访问底层模型/领域对象,接口被更新。

现在我有一个似乎与此不兼容的架构。我有一个专用的数据库层(其中领域是一个实现),我在后台线程中加载领域对象并映射到普通模型对象。这样我就可以将我的代码与数据库实现分离,并且可以使用不可变模型。

在这种情况下,我不确定如何处理索引。看起来我应该记住原始查询,再做一次,然后使用这些索引访问我需要的条目?听起来效率很低……

此外,我不知道索引如何与特定查询一起使用,例如“所有在字段 y 中具有状态 x 的项目”——我收到的索引是否指的是这个特定查询?

在这里进行的推荐方式是什么?

编辑:只是为了添加一些额外的评论,我使用自定义服务器和 websockets 实现了自己的同步功能,并且我使用语义键而不是索引(有时我什至发送了完整的对象以避免查询数据库)。这样我就不必处理基于索引的访问可能导致的不一致。想知道类似的事情是否可能或计划在某个时候使用 Realm 同步。

PS 我打算切换到 Realm 同步,因为我的自定义服务器没有经过很好的测试并且很难维护。我希望这是可能的。

0 投票
1 回答
700 浏览

ios - 如何处理同步错误:“收到错误的变更集:断言失败:left().link_target_table_ndx == right().link_target_table_ndx”

我在登录时在对象服务器控制台上收到此错误,并且无法再同步。相同的用户帐户之前正在工作。

2016-12-13T13:20:52.858Z - 错误:同步服务器:连接 [6]:会话 [1]:收到错误的变更集:断言失败:left().link_target_table_ndx == right().link_target_table_ndx (message_type='上传')

2016-12-13T13:20:52.858Z - 信息:同步服务器:连接 [6]:会话 [1]:会话终止 (session_ident=1)。

2016-12-13T13:20:52.858Z - 信息:同步服务器:连接 [6]:发送:错误(error_code=212,message_size=22,try_again=0,session_ident=1)

2016-12-13T13:20:52.859Z - 信息:同步服务器:连接 [6]:客户端关闭连接:输入结束

这是什么意思?我如何解决它?

编辑:我尝试增加架构版本,然后我得到:

重要提示:如果您看到此错误,请将此日志发送至 help@realm.io。

2016-12-13 14:37:07.407848 proj[34851:10576594] 同步:打开领域文件:/var/mobile/Containers/Data/Application/65681835-AE09-4E4C-830A-BA7A8ADF0D69/Documents/realm-object-server /b77ccd68258d68251aafb1bac5d8d653/realm%3A%2F%2F192.168.0.12%3A9080%2F%7E%2Fz

2016-12-13 14:37:07.408088 proj[34851:10576378] /Users/x/y/z/Pods/Realm/Realm/RLMClassInfo.mm:97: [realm-core-2.2.0] 断言失败:rlmSchema .objectSchema.count == schema.size()

(发送到 help@realm.io)

0 投票
1 回答
295 浏览

authentication - (Mac) 领域对象服务器登录失败:电子邮件/密码不正确

我在计算机 1 上安装了领域并运行领域对象服务器(创建一个新的管理员用户),然后在计算机 2 上安装并运行领域对象服务器,试图创建我在计算机 1 上创建的相同管理员用户。它立即进入登录页面,我认为它已从计算机 1 识别出我的凭据,因此我填写了相同的凭据并点击登录。由于某种原因,此警报现在显示在屏幕上:

登录失败:电子邮件/密码组合不正确。

在服务器日志中它指出:

然后我重新启动了领域服务器并尝试使用不同的凭据创建一个不同的管理员用户,在填写凭据并点击“提交”后,我立即被带到登录页面,它现在发出警报说:

设置您的帐户时出错。

同样有趣的是,在尝试创建该新帐户后,我在点击提交后没有在日志中收到任何信息。

0 投票
1 回答
216 浏览

ios - 更改领域对象服务器中的 IP 地址

当领域对象服务器具有不同的 IP 时,我遇到了问题。该应用程序可以通过 Credential 登录,但之后它将返回空数据,尽管我的数据库位于该 IP 上并且可以通过 Realm Browser 访问。实际上,我只在领域对象服务器中使用一个帐户,并创建了一个包含用户名和密码的用户表,以便在它可以通过凭据连接到服务器后,我将读取屏幕上的用户名和密码并在数据库中检查它的信息。

连接 Realm Object Server 功能:

SyncUser登录后从表中查询:

该解决方案似乎很奇怪,因此我必须通过按下我的登录按钮多次调用一个函数,并希望它能够通过服务器。

这是我第一个使用 Realm 和 Realm Object Server 的应用程序,所以我在这种情况下没有太多经验。

0 投票
1 回答
59 浏览

objective-c - 使用 Realm 设计新的 iOS 应用程序

我对 Realm 及其技术非常陌生,但对运动应用程序有一个想法,领域对象服务器及其同步确实可以提供帮助,但我不确定我应该如何设置它。

所以我希望能够在移动应用程序的一组玩家之间共享,例如飞镖俱乐部的成员。数据将是球员的详细信息和过去对每个参加过比赛的球员的得分。

当然,如果该组是一个场地,则给定的玩家可以是多个组的成员。

这可以使用 Realm 吗?我想给予灵活性。

0 投票
3 回答
2554 浏览

ios - 尝试使用 Realm 对象服务器教程

我已经创建了一个 Amazon Web Services EC2 实例并部署了一个带有领域对象服务器的 AMI,正如其文档所述: https ://realm.io/docs/realm-object-server/#install-realm-object-server

一旦安装并创建了我的管理员用户,我就完成了 iOS 教程:https ://realm.io/docs/tutorials/realmtasks/ ,直到第 7 点,足以创建任务,但是当我在应用程序中添加新任务时,什么也没有发生。调试时,我注意到下一句try没有执行:

项目集合似乎已正确初始化:

在此处输入图像描述

在 ROS 仪表板中,可以看到 Xcode 中引用的数据库: 具有到引用领域数据库的同步路径的领域仪表板

在图像中可以看到“默认权限”属性是无访问权限,这是没有创建新任务的原因吗?如果是这样,我该如何更改该权限?如果这不是原因,有人可以帮助我吗?

提前致谢

0 投票
1 回答
85 浏览

ios - 唯一领域容器对象

我在 Realm 的任务演示应用程序之后实现了实时同步。

有一个虚拟容器用于存放List模型。

演示应用似乎不支持离线使用。

我想知道,在这种设置下,我在在线和离线设备上启动应用程序,然后使用离线设备上网时会发生什么。

我最初的期望是我会以 2 个容器结束(这将是一个无效状态),但是当我惊讶地测试时,最后只有 1 个容器。

但有时我得到 2 个容器,但无法确定是什么原因造成的。

那么问题是,这究竟是如何工作的?我认为当我第一次同步离线设备时容器通常不会重复的原因是它被作为同一个对象处理,可能是因为它没有主键或其他什么?但是为什么有时会重复呢?这里的最佳做法是什么?我是否可能必须使用主键或在连接后检查是否存在重复,如果是,则手动合并容器?

0 投票
1 回答
798 浏览

swift - 领域对象服务器 - 错误:您的请求参数未验证

我构建了一个小型 iOS 应用程序,它使用Realm而不是CoreData. 该应用程序不需要登录,因为它只存储用户输入的数据。我目前正在尝试保存用户数据,例如,如果用户删除了该应用程序,则默认情况下数据将在下一次重新安装该应用程序时存在。

这就是我感到困惑的地方。即使应用程序不需要登录屏幕,我还能使用Realm 移动平台吗?(即,登录到其 iCloud 帐户的用户将自动保存数据)。

这是我到目前为止所做的:

  1. 我在 AWS EC2 实例上配置了领域对象服务器,我可以通过浏览器登录领域仪表板。
  2. 我根据身份验证说明configuration.yml在文件中配置了 cloudKit 节。
  3. 在我的setupRealm()func 中,我尝试了以下代码,但我不断收到参数验证错误:

    这是错误消息:

    /li>

我怀疑我的 iCloud 用户没有与对象服务器绑定,但我似乎无法将这些部分放在一起。我会很感激任何指示。


0 投票
1 回答
328 浏览

swift - 如何初始化一个领域列表?

我正在研究此处找到的领域 swift 教程。

在本地机器上成功完成教程后,我将领域对象服务器部署在 Ubuntu 数字海洋服务器上。

现在,当我在指向服务器的开发机器上运行代码时,我收到错误消息:

问题可能在于,当您完成本教程时,它会让您启动他们的 Mac 应用程序并创建任务。然后您进入下一步并创建 iOS 应用程序。在 iOS 应用程序中,在 SetupRealm() 中,它们使用以下行与领域服务器同步:

self.items仅当领域服务器添加了第一个任务(由 Mac 应用程序)时,才会填充。因此,当所有内容都在我的本地计算机上运行时,本教程工作正常。

问题是当我将领域对象服务器部署到数字海洋 Ubuntu 实例时。没有 Mac 应用程序可以填充第一个任务。

有没有更好的方法来检查领域和初始化/填充self.items