连接到 Atlas App Services 后端 - Swift SDK
应用客户端是与 App Services 后端的接口。 它提供对身份验证功能、函数、查询 MongoDB Atlas 数据源和Device Sync 的访问。
注意
Apple 隐私清单
SDK 的 Apple 隐私清单不涵盖连接到 Atlas 或通过 App 客户端使用的任何数据。 如果您的应用程序连接到 App Services,并且您打算通过 Apple App Store 分发它,则您可能需要在应用程序的 Apple 隐私清单中提供自己的披露信息。
有关更多信息,请参阅Apple 隐私清单。
访问应用程序客户端
传递应用的 App ID ,您可以在 App Services用户界面中找到该 ID。
let app = App(id: YOUR_APP_SERVICES_APP_ID) // replace YOUR_APP_SERVICES_APP_ID with your App ID
配置
您可以将配置对象传递给 App
:
let configuration = AppConfiguration( baseURL: "https://services.cloud.mongodb.com", // You can customize base URL transport: nil, // Custom RLMNetworkTransportProtocol defaultRequestTimeoutMS: 30000 ) let app = App(id: "my-app-services-app-id", configuration: configuration)
您可以创建多个应用客户端实例以连接多个应用。 股票相同 App ID的所有 App客户端实例使用相同的根本的连接。
重要
初始化应用后更改应用配置
从 Swift SDK 版本10.46.0开始, 您可以更改应用配置中的baseURL
,应用客户端会使用新的baseURL
。 在 Swift SDK 版本10.45.3及更早版本中,当您初始化 App 客户端时,会在内部缓存配置。 尝试关闭应用程序,然后在同一进程中使用更改后的配置重新打开该应用程序无效。 客户端继续使用缓存的配置。
同步连接共享
版本 10.41.0 中的新增内容。
您可以在AppConfiguration上设立enableSessionMultiplexing
布尔值,以指定Realm Swift SDK是应为每个同步域打开与服务器的连接,还是为所有同步 Realm股票与服务器的连接。
如果您没有为此布尔值指定值,则 Realm 默认为所有同步 Realm 的每个 App Services 用户共享一个连接。
let configuration = AppConfiguration(enableSessionMultiplexing: false) let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)
同步超时选项
版本 10.41.0 中的新增内容。
您可以在AppConfiguration上设置各种同步超时选项。 syncTimeouts
属性可接受SyncTimeoutOptions
对象来覆盖这些设置的默认值。
有关可用超时设置及其定义的完整列表,请参阅RLMSyncTimeoutOptions。
let syncTimeoutOptions = SyncTimeoutOptions( connectTimeout: 30000, connectionLingerTime: 5000, pingKeepalivePeriod: 10000, pongKeepaliveTimeout: 10000, fastReconnectLimit: 30000 ) let configuration = AppConfiguration(syncTimeouts: syncTimeoutOptions) let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)
支持的操作系统
Realm Swift SDK支持连接到范围Apple 操作系统的Atlas App Services App,具体取决于 Xcode 版本和Realm Swift SDK版本。 连接到App Services App可以:
身份验证和用户管理
调用Atlas Function
查询MongoDB Atlas数据源
设备同步
有关支持的操作系统的最新信息,请参阅操作系统支持。
目前, Realm Swift SDK不支持从 watchOS 连接到App Services App。