Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

Atlas App Services バックエンドへの接続 - Swift SDK

項目一覧

  • アプリ クライアントへのアクセス
  • 構成
  • 同期接続の共有
  • 同期タイムアウト オプション
  • 特定のサーバーへの接続
  • 実行中に別のサーバーへの接続
  • サポートされているオペレーティングシステム

App クライアントは、App Services バックエンドへのインターフェースです。 認証機能関数MongoDB Atlas データソースのクエリ 、 Device Sync へのアクセスを提供します。

注意

Apple プライバシーマニフェスト

SDK の Apple プライバシーマニフェストは、Atlas への接続、または App クライアントを介したデータの使用をカバー していません 。 アプリが App Services に接続し、それを Apple App Store を通じて配布する場合は、アプリの Apple プライバシーマニフェストで独自の情報公開を提供する必要がある場合があります。

詳細については、「 Apple プライバシーマニフェスト 」を参照してください。

アプリのアプリ ID を渡します。このアプリ IDは、App Services UI で確認できます。

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)

複数のアプリに接続するには、複数のアプリクライアントインスタンスを作成します。 同じアプリ ID を共有するすべてのアプリクライアント インスタンスは、同じ基礎の接続を使用します。

重要

アプリ初期化後のアプリ構成の変更

Swift SDK バージョン10.46.0以降、 アプリ構成でbaseURLを変更し、アプリクライアントは新しいbaseURLを使用します。 Swift SDK バージョン10.45.3以前では、アプリクライアントを初期化すると、構成が内部的にキャッシュされます。 アプリを閉じてから、同じプロセス内で変更された構成で再度開いても効果はありません。 クライアントはキャッシュされた構成を引き続き使用します。

バージョン 10.41.0 の新機能

AppConfigurationenableSessionMultiplexingブール値を設定して、Realm Swift SDK が同期された Realm ごとにサーバーへの接続を開くか、すべての同期された Realm のサーバーへの接続を共有するかを指定できます。

このブール値を指定しない場合、Realm はデフォルトで、同期されたすべての Realm に対して App Services ユーザーごとに 1 つの接続を共有します。

let configuration = AppConfiguration(enableSessionMultiplexing: false)
let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)

バージョン 10.41.0 の新機能

AppConfigurationでさまざまな同期タイムアウト オプションを設定できます。 syncTimeoutsプロパティはSyncTimeoutOptionsオブジェクトを受け入れて、これらの設定のデフォルト値を上書きできます。

使用可能なタイムアウト設定とその定義の完全なリストについては、「 RMSyncTimeoutOptions 」を参照してください。

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)

デフォルトでは、Atlas Device SDK はhttps://services.cloud.mongodb.comのグローバルbaseURLを使用して Atlas に接続します。 場合によっては、別のサーバーに接続する必要があるかもしれません。

AppConfigurationbaseURLを指定できます。

// Specify a baseURL to connect to a server other than the default.
// In this case, an Edge Server instance running on the device.
let configuration = AppConfiguration(baseURL: "http://localhost:80")
let edgeApp = App(id: EDGE_SERVER_APP_ID, configuration: configuration)

バージョン10.50.0の新機能

場合によっては、アプリの実行中にbaseURLを変更する必要があるかもしれません。 たとえば、Edge Server 間でローテーションしたり、App Services 接続から Edge Server 接続に移行したりする場合があります。 実行時にbaseURLを変更するには、 app.updateBaseUrl(to: )メソッドを呼び出します。

// Specify a baseURL to connect to a server other than the default.
// In this case, an Edge Server instance running on the device.
let configuration = AppConfiguration(baseURL: "http://localhost:80")
let edgeApp = App(id: EDGE_SERVER_APP_ID, configuration: configuration)
// You can check the `baseURL` of an app to define app logic.
if edgeApp.baseURL == "http://localhost:80" {
print("Client app is currently connected to a local Edge Server instance")
}
// ... log in a user and use the app...
// ... some time later...
try await edgeApp.updateBaseUrl(to: "https://services.cloud.mongodb.com")

この API は実験的なため、この API を使用するファイルで実験的なインポートを使用する必要があります。

@_spi(RealmSwiftExperimental) import RealmSwift

If you want to change the baseURL after you have logged in a user and have opened a synced database, the app must perform a client reset. コード内で次の手順を実行します。

  1. 同期セッションを一時停止します。

  2. app.updateBaseUrl(to: )メソッドを呼び出してbaseURLを更新します。

  3. 新しいbaseURLを使用してユーザーを再度認証してログインします。

  4. 同期されたデータベースを開き、新しいサーバーからデータをプルします。

ユーザーが認証を行い、新しいサーバーに接続するには、サーバーとクライアントの両方がオンラインである必要があります。 サーバーがオンラインでない場合、またはクライアントにネットワーク接続がない場合、ユーザーは認証を行いデータベースを開くことができません。

Realm Swift SDK は、Xcode バージョンと Realm Swift SDK バージョンに応じて、Apple オペレーティング システムの範囲向けの Atlas App Services App への接続をサポートしています。 App Services Appに接続すると、次のことが可能になります。

  • 認証とユーザー管理

  • Atlas Function の呼び出し

  • MongoDB Atlas データソースのクエリ

  • デバイスの同期

サポートされているオペレーティング システムの最新情報については、 OS サポート を参照してください。

現時点では、Realm Swift SDK は watchOS から App Services App への接続をサポートしていません。

戻る

アプリケーションサービス