将客户端应用程序中的数据与 Atlas 和其他设备同步
在此页面上
如果您有使用 Realm 数据库的移动或客户端应用程序,并且您希望在其他设备之间同步其数据并将其备份到 MongoDB Atlas,则可以使用 Device Sync 来实现。 请按照以下概要步骤开始操作:
设置 Atlas 访问权限
创建 Atlas App Services 应用
App Services 应用程序是一个网关,使您的客户端设备能够连接 MongoDB Atlas。在创建应用程序时,您可以为其命名,将其链接到 Atlas 集群,并指定最适合应用程序的部署模型和部署区域。
要了解如何创建 App Services App,请参阅创建应用。
配置 Device Sync
Device Sync 是一项管理与 Atlas 以及跨客户端设备的数据同步的服务。 Device Sync 与 Realm SDK 一起自动管理网络连接、冲突解决、用户身份验证以及用户权限和数据访问。
配置 Device Sync时,您可以指定客户端设备可以访问的数据源,以及确定用户可以读取和写入哪些数据的权限。
您可以通过 Atlas 用户界面、Atlas App Services 命令行界面或 App Services Admin API 配置 Device Sync。第一次配置 Device Sync 时,您可能会发现使用 Atlas 用户界面很有帮助,因为它提供了有关各种设置和选项的链接和信息。
启用身份验证提供程序
您的客户端用户必须进行身份验证才能访问同步的数据。App Services 提供了多个身份验证提供者,使您的用户能够进行身份验证。配置一个或多个这样的身份验证提供者,以便在您的客户端应用程序中启用身份验证。
您可以在App Services App用户界面中配置身份验证提供程序,方法是在左侧导航菜单中选择 Authentication ,然后单击提供商进行配置。 您还可以通过使用Atlas App Services命令行界面或 App Services Admin API编辑App Services配置来配置身份验证提供程序。
生成Atlas App Services模式
当您已有使用Realm数据库的客户端应用程序时,您可以使用Realm对象模型生成Atlas App Services模式,以在客户端设备和Atlas之间映射数据。 为此,您可以启用开发模式,该功能可从同步的 Realm 数据中读取对象模型数据,并根据该数据生成模式。
有关如何从Atlas App Services RealmRealm 对象模型生成 模式的更多信息,请参阅从 对象模型 Atlas App ServicesRealm模式。
将同步添加到客户端应用程序
此后,您已完成Atlas端所需的所有设立,并且可以准备客户端应用程序来同步数据。 如果您已经有一个使用Realm数据库持久保存数据的客户端应用程序,则只需添加一些元素即可跨设备并与Atlas同步该数据。
将现有数据复制到同步 Realm 中
如果您已有客户端数据,则无法将Device Sync直接添加到非同步域。 您必须将数据从非同步域复制到同步域中。 如果您没有任何客户端数据,可以跳过此步骤。
某些 SDK 提供的方法允许您在打开 Realm 时执行此操作。 但是,许多 Realm SDK 目前不支持将这些方法与 Flexible Sync 结合使用。
如果您的 SDK 不支持将本地 Realm 复制到“Flexible Sync Realm”,则必须编写逻辑来迭代非同步 Realm 中的每个对象,并将其复制到同步 Realm。 这是一次性过程。 复制数据后,您可以丢弃未同步的 Realm,仅打开已同步的 Realm。