関連クラス
- AsyncOpenTask
- AuthError
- BaseSubscriptionSet
- IncompatibleSyncedRealmError
- MutableSubscriptionSet
- セッション
- サブスクリプション
- SubscriptionSet
- ユーザー ID
ノード
- 支払い待ち
- タイプ:
"pending"
、"complete"
、"error"
、または"superseded"
- デフォルト:
pending
サブスクリプションの更新はローカルに保存されていますが、サーバーはまだ更新されたサブスクライブ クエリに一致するすべてのデータを返していません。
- 完全
- タイプ:
"pending"
、"complete"
、"error"
、または"superseded"
- デフォルト:
complete
サーバーはサブスクライブを確認し、SubscriptionSet が更新されたときにサブスクライブ クエリに一致するすべてのデータを送信しました。 サーバーは定常状態の同期モードになり、更新が順次ストリーミングされるようになりました。
- エラー
- タイプ:
"pending"
、"complete"
、"error"
、または"superseded"
- デフォルト:
error
サーバーはエラーを返し、この Realm の同期は一時停止されます。 実際のエラーを表示するには、
Subscriptions.error
を使用します。引き続き
Realm.App.Sync.SubscriptionSet#update
を使用してサブスクライブを更新できます。新しい更新によってエラーがtriggerしない場合は、同期が再開されます。- 上書き
- タイプ:
"pending"
、"complete"
、"error"
、または"superseded"
- デフォルト:
superseded
SubscriptionSet は更新されたものによって上書きされています。 これは通常、
Subscriptions
の別のインスタンスでRealm.App.Sync.SubscriptionSet#update
を呼び出したことを意味します。 スーパーシードされた SubscriptionSet は使用せず、代わりにRealm.subscriptions
から新しいインスタンスを取得する必要があります。
Realm.App.Sync.SubscriptionSet
セットの状態を表す列挙型。
タイプ:
"pending"
または"complete"
または"error"
または"superseded"
プロパティ:
メソッド
- アプリ 任意
- タイプ:
Realm.App
Realm が開かれたアプリ。
- アプリ
- タイプ:
Realm.App
Realm アプリ。
- user
- タイプ:
Realm.User
ユーザー。
- user
- タイプ:
Realm.User
- partitionValue
- タイプ:
string
、number
、ObjectId
、またはnull
- アプリ 任意
- タイプ:
Realm.App
Realm が開かれたアプリ。
- path 任意
- タイプ:
string
リセットする Realm へのパス。 リセットが不可能な場合は、エラーがスローされます。
- アプリ
- タイプ:
Realm.App
Realm アプリ。
- アプリ
- タイプ:
Realm.App
Realm アプリ。
- logger
- タイプ:
logCallback
ログのコールバック。
- アプリ
- タイプ:
Realm.App
Realm アプリ。
- レベル
- タイプ:
LogLevel
新しいログレベル。
- アプリ
- タイプ:
Realm.App
Realm アプリ
- userAgent
- タイプ:
string
ユーザーエージェントの説明
Realm が同期セッションの状態に関係なく同期セッションを参照している場合は、 true
を返します。 false
が返された場合、現在セッションが存在しないことを意味します。
パラメーター:
Realm アプリの 1 つの接続を介して複数の同期セッションの重複を有効にします。 同期された Realm が多数開いていると、サーバーへのすべてのソケットが開いているため、システムのファイル記述子が不足する可能性があります。 セッションの複数使用はそれを軽減するために設計されていますが、 フェイルオーバー が設定されたサーバーでは動作しない可能性があります。 ファイル記述子の制限に達したに関するエラーが表示され、かつ多くの同期セッションを使用していることがわかっている場合にのみ を使用してください。
パラメーター:
[Realm.App.Sync.Session, ...]
ユーザーのすべての同期セッションを返します。
パラメーター:
[Realm.App.Sync.Session, ...]
セッションの配列
Realm.App.Sync.Session
ユーザーとパーティション値に関連付けられたセッションを返します。
パラメーター:
Realm.App.Sync.Session
セッション
クライアント リセットを開始します。 リセットする前に、Realm を閉じる必要があります。
Atlas Device Sync Server との通信で通常の同期の継続を妨げる回復不能なエラーが示されている場合は、同期された Realm をリセットする必要がある場合があります。 その最も一般的な理由は、クライアントが長時間切断されていた場合です。
Realm のローカルコピーは、保管のためにリカバリ ディレクトリに移動されます。
Atlas に正常に同期されなかったローカル書き込みは、Realm ファイルのローカル リカバリ コピーに含まれます。 再ダウンロードされた Realm には、最初は Realm がサーバー上で同期されていた時点で存在するデータのみが含まれます。
パラメーター:
例:
{
// Once you have opened your Realm, you will have to keep a reference to it.
// In the error handler, this reference is called `realm`
const config = {
// schema, etc.
sync: {
user,
partitionValue,
error: (session, error) => {
if (error.name === 'ClientReset') {
let path = realm.path; // realm.path will no be accessible after realm.close()
realm.close();
Realm.App.Sync.initiateClientReset(app, path);
// - open Realm at `error.config.path` (oldRealm)
// - open Realm with `config` (newRealm)
// - copy required objects from oldRealm to newRealm
// - close both Realms
}
}
}
};
}
このメソッドを呼び出すと、Realm は Realm App をサーバーにすぐに再接続しようとします。
Realm は自動的に再接続されますが、指数バックオフが使用されます。 つまり、デバイスが長時間オフラインの場合、オンラインに戻った後に接続を復元するには、予想よりも時間がかかる可能性があります。 ネットワーク状態を検出できる状況(例: プレーン モード)。 このメソッドを手動で呼び出すと、ユーザー エクスペリエンスが向上します。
パラメーター:
同期クライアントのログを取得します。 ログ レベルは 1 回のみ設定でき、アプリ インスタンスを作成した後、Realm を開く前に行う必要があります。
パラメーター:
例:
{
const app = new Realm.App(getAppConfig());
Realm.App.Sync.setLogger(app, (level, message) => console.log(`[${level}] ${message}`));
const user = await app.logIn(credentials);
const realm = await Realm.open(getRealmConfig(user));
}
同期ログ レベル を設定する。 ログ レベルは 1 回のみ設定でき、アプリ インスタンスを作成した後、Realm を開く前に行う必要があります。
パラメーター:
例:
{
const app = new Realm.App(getAppConfig());
Realm.App.Sync.setLogLevel(app, "all");
const user = await app.logIn(credentials);
const realm = await Realm.open(getRealmConfig(user));
}
stringRealmセッションが作成されるときに オブジェクト サーバーに送信されるユーザーエージェント のアプリケーション部分を設定します。
このメソッドは、最初の Realm が開かれるまでのみ呼び出すことができます。 その後は、ユーザーエージェントは変更できなくなります。
パラメーター:
タイプの定義
- モード
- タイプ:
string
「マニュアル」(非推奨、
Realm.App.Sync.initiateClientReset()
も参照)、"discardUnsynced Changes" (サーバーから新しいコピーをダウンロード)、"recoverUnsyncedchanges" (リモートとローカルの同期されていない変更をマージし、同期されていない変更をマージ)、または "recoverOrDiscardUnsynced Changes" (から新しいコピーをダウンロード)のいずれかを実行します。同期されていない変更を回復できない場合は、サーバー)- onBefore 任意
- タイプ:
callback(realm)
またはnull
同期がクライアントのリセットを開始する前に呼び出されます("discardUnsyncedchanges"、"recoverUnsyncedchanges"、または "recoverOrDiscardUnsyncedchanges" モードのみ)。
- onAfter 任意
- タイプ:
callback(beforeRealm, afterRealm)
またはnull
クライアント リセットが実行された後に呼び出されます。
beforeRealm
とafterRealm
は、クライアントリセットの前後で Realm のインスタンスです("discardUnsyncedchanges"、"reoverUnsyncedchanges"、または "recoverOrDiscardUnsyncedchanges" モードのみ)。- onFallback 任意
- タイプ:
callback(session, path)
またはnull
リカバリまたは破棄に失敗した場合に呼び出されます("recoverUnsyncedchanges" または "recoverOrDiscardUnsyncedchanges" モードのみ)。
- on Manual 任意
- タイプ:
callback(session, path)
またはnull
手動クライアント リセットを実行します -
Realm.App.Sync.initiateClientReset()
も参照してください(「手動」モードのみ)。- update
- タイプ:
callback(realm)
Realm.App.Sync~MutableSubscriptionSet
インスタンスとRealm
インスタンスで呼び出されるコールバックを使用すると、サブスクリプションの初期セットを設定できます。 詳しくは、Realm.App.Sync.SubscriptionSet#update
を参照してください。- rerunOnOpen
- タイプ:
Boolean
任意のフラグ。
true
の場合、Realm が開かれるたびにupdate
コールバックが再実行されます(例: ユーザーがアプリを開くたび)、それ以外の場合(デフォルトでは)、Realm がまだ存在しない場合にのみ実行されます。- レベル
- タイプ:
number
ログ エントリのレベル。0 から 8 まで(両端を含む)。 これをインデックスとして
['all', 'trace', 'debug', 'detail', 'info', 'warn', 'error', 'fatal', 'off']
に使用してレベルの名前を取得します。- メッセージ
- タイプ:
string
ログ エントリのメッセージ。
- タイプ
- タイプ:
string
Realm を開く方法 - ダウンロードが完了するまで待機する場合は ' DownloadBeforeOpen' を使用するか、ローカル Realm を開くには 'OpenImmediament' を使用します
- timeOut 任意
- タイプ:
number
ダウンロードを待機する時間(ミリ秒単位)。 デフォルト: 無限大
- timeOutBehavior 任意
- タイプ:
string
ダウンロードがタイムアウトした場合の動作 - 'openLocalRealm' がローカル Realm を開くか、'throwException' が例外をスローするようにします。
- validate
- タイプ:
boolean
SSL 証明書を検証する必要があるかどうかを示します。 デフォルトは
true
です。- CertificatePath
- タイプ:
string
信頼された SSL 証明書を検索するパス。
- validateCertificates
- タイプ:
sslValidateCallback
サーバーの SSL 証明書を受け入れるか拒否するために使用されるコールバック関数。
- name
- タイプ:
string
またはundefined
追加されるサブスクライブの名前を設定します。 これにより、後でサブスクリプションを名前で参照できるようになります(例:
Realm.App.Sync.MutableSubscriptionSet#removeByName
を呼び出す際など)。- スローオンアップデート
- タイプ:
boolean
またはundefined
デフォルトでは、既存のサブスクライブと同じ名前で異なるクエリを実行することで、既存のサブスクライブが新しいクエリで更新されます。
throwOnUpdate
が true に設定されている場合、同じ名前で異なるクエリのサブスクリプションを追加すると、代わりに例外がスローされます。 同じ名前とクエリを持つサブスクリプションを追加しても、常に何も発生しません。- user
- タイプ:
Realm.User
Realm.App.logIn
を呼び出すことで取得されたRealm.User
オブジェクト。- ssl 任意
- タイプ:
SSLConfiguration
SSL 構成。
- 柔軟
- タイプ:
boolean
フレキシブルな同期を使用するか(
true
の場合)、パーティションベースの同期(デフォルト)を使用するか- partitionValue
- タイプ:
string
、number
、BSON.ObjectId
、またはnull
パーティションキーの値。 パーティションベースの同期を使用する場合にのみ有効です。
- initialSubscriptions
- タイプ:
InitialSubscriptionsConfiguration
Realm を開くときに使用する柔軟な同期サブスクリプションの初期セットの設定を構成するための任意のオブジェクト。 フレキシブルな同期を使用する場合にのみ有効です。 詳しくは
Realm.App.Sync~InitialSubscriptionsConfiguration
を参照してください。- onError 任意
- タイプ:
callback(session, syncError)
エラー状況で呼び出されるコールバック関数。 コールバックには、
session
とsyncError
の 2 つの引数が渡されます。syncError.name == "ClientReset"
の場合、syncError.path
とsyncError.config
が設定され、syncError.readOnly
が true です(非推奨についてはRealm.App.Sync~ClientResetConfiguration
を参照してください)。 それ以外の場合、syncError
は最大 5 つのプロパティを持つことができます。name
、message
、isFatal
、category
、code
。- customHttpheaders 任意
- タイプ:
Object
カスタム のマップ( string、stringHTTP headers )。
- newRealmFile の動作 任意
- タイプ:
OpenRealmBehaviorConfiguration
新しいファイルを作成してバックグラウンドで同期するか、ファイルが同期されるまで待機するか。 設定されていない場合、Realm は開く前にダウンロードされます。
- existsRealmFile の動作 任意
- タイプ:
OpenRealmBehaviorConfiguration
既存のファイルを開いてバックグラウンドで同期するか、ファイルの同期が完了するまで待ってから開くか。 設定されていない場合、Realm は開く前にダウンロードされます。
- clientReset 任意
- タイプ:
ClientResetConfiguration
またはnull
クライアントリセットの構成
これでは、クライアント リセットを構成するオプションについて説明します。
タイプ:
Object
プロパティ:
同期された Realm を開く前に、ダウンロードが完了するまで待機する場合のデフォルトの動作設定。
Realm を開くときに使用する柔軟な同期サブスクリプションの初期セットの設定を構成するための任意のオブジェクト。 これが指定されている場合、このサブスクリプションのセットがサーバーと完全に同期されるまで、 Realm.open
は解決されません。
例:
const config: Realm.Configuration = {
sync: {
user,
flexible: true,
initialSubscriptions: {
update: (subs, realm) => {
subs.add(realm.objects('Task'));
},
rerunOnOpen: true,
},
},
// ... rest of config ...
};
const realm = await Realm.open(config);
// At this point, the Realm will be open with the data for the initial set
// subscriptions fully synchronized.
タイプ:
Object
プロパティ:
Atlas Device Sync クライアントをカスタム ロガーで測定するときにRealm.App.Sync.setLogger
に渡されるコールバック。
パラメーター:
タイプ:
"all"
または"trace"
または"debug"
または"detail"
または"info"
または"warn"
または"error"
または"fatal"
または"off"
同期された Realm をすぐに開き、その操作を開始する場合のデフォルトの動作設定。 Realm を初めて開く場合、サーバー データがバックグラウンドでダウンロードされている間は が空になります。
同期された Realm を開く方法を指定します。
タイプ:
Object
プロパティ:
ユーザーを認証するために使用される 認証プロバイダ のタイプ。
タイプ:
"anon-user"
または"api-key"
または"local-userpass"
または"custom-function"
または"custom-token"
または"oauth2-google"
or "oauth2-facebook"
or "oauth2-apple"
以下では、Atlas Device Sync を使用してRealm
インスタンスを作成するために使用されるさまざまなオプションについて説明します。
タイプ:
Object
プロパティ:
のオプション Realm.App.Sync.SubscriptionSet.add
タイプ:
Object
プロパティ:
以下では、Atlas App Services 同期を使用してRealm
インスタンスを作成するために使用されるさまざまなオプションについて説明します。
タイプ:
Object