パッケージ io.realm.mongodb

クラスアプリ


  • public class App
    extends Object
    Appは、 MongoDB Realm Appを操作するためのメインのクライアント側エントリ ポイントです。

    このアプリは、次の目的で使用できます。

    • 使用状況を登録し、認証プロバイダーを通じてユーザーに関するさまざまな操作を実行するようになりました( ApiKeyAuthEmailPasswordAuthImpl
    • 同期された Realm を使用して、ローカル デバイスとリモート Realm アプリ間でデータを同期する
    • を使用して Realm アプリ関数を呼び出す Functions
    • 次を使用して、MongoDB データベースからリモート データにアクセスします: MongoClient

    リモートRealm Appにリンクするアプリを作成するには、Realm を初期化し、次のようにアプリを構成します。

        class MyApplication extends Application {
    
             App APP; // The App instance should be a global singleton
    
             \@Override
             public void onCreate() {
                 super.onCreate();
    
                 Realm.init(this);
    
                 AppConfiguration appConfiguration = new AppConfiguration.Builder(BuildConfig.MONGODB_REALM_APP_ID)
                         .appName(BuildConfig.VERSION_NAME)
                         .appVersion(Integer.toString(BuildConfig.VERSION_CODE))
                         .build();
    
                 APP = new App(appConfiguration);
             }
    
         }
     

    アプリを構成した後、ユーザーの管理を開始し、同期された Realm の構成、リモートRealm関数の呼び出し、 mongoコレクションを介してリモート データにアクセスできます。 以下の例は、メイン スレッドからは使用できない同期された API を示しています。 同等の非同期カウンターポート用。 のサンプル プロジェクトは、 https://github.com/realm/realm-java/tree/v10/examples/mongoDbRealmExamples/ を参照してください。

    新しいユーザーを登録したり、既存のユーザーを使用してログインしたりするには、次の操作を行います。

         // 新しいユーザーを登録する AP.getEmailPassword().registerUser(ユーザー名、パスワード) // 既存のユーザーでログイン user user = AP.login(Credentials.emailPassword(username, パスワード))
     

    承認されたユーザーの場合、次のようにSyncConfigurationを使用して Realm を開くことで、ローカル デバイスとリモート Realm アプリ間でデータを同期できます。

         SyncConfiguration syncConfiguration = new Sync Configuration.Builder(user, "<partition value>") .Build()
    
         Realm インスタンス = Realm.getInstance(syncConfiguration)。
         SyncSession セッション = AP.getSync().getSession(syncConfiguration)
    
         instance.executeTransaction(realm - {>{realm.insert(...)} }) Session.uploadAllLocalchanges()
         instance.close()
     

    以下に示すように、リモート Realm 関数を呼び出すことができます。

         関数 function = user.getFunctions()
         整数の合計 = Functions. CallFunction("sum", Arrays.asList(1, 2、3、4)、整数.クラス)
     

    以下に示すように、リモート Realm アプリからコレクションにアクセスします。

         MongoClient クライアント = user.getMongoClient(SERVICE_NAME)
         MongoDB database = client.getDatabase(DATABASE_NAME)
         MongoCollection[DocumentT]<DocumentT> コレクション = database.getCollection(COLLECTION_NAME)。Long count = collection.count().get()
     

    以下も参照してください。
    AppConfiguration.Builder, EmailPasswordAuth, SyncConfiguration, User.getFunctions(), User.getMongoClient(String)
    • フィールドの詳細

      • NETWORK_POOL_EXECUTOR

        public static ThreadPoolExecutor NETWORK_POOL_EXECUTOR
        MongoDB Realm に対してネットワーク リクエストを実行するときに使用されるスレッド プール。

        このプールはテスト目的でのみ公開されており、キューが空でないときに置き換えると未定義の動作が発生します。

    • コンストラクターの詳細

      • アプリ

        public App( string appId)
      • アプリ

        public App( AppConfiguration 構成
        指定されたAppConfigurationに従ってアプリを作成するためのコンストラクター。
        パラメーター:
        config - このアプリインスタンスに使用する構成。
        以下も参照してください。
        AppConfiguration.Builder
    • メソッドの詳細

      • currentUser

        @Nullable公開ユーザーcurrentUser()
        ログインしていてまだ有効な現在のユーザーを返します。

        ユーザーは、ログアウトしたり、ユーザーの更新トークンの有効期限が切れたり、取り消されたりすると無効化されます。

        2 人以上のユーザーがログインしている場合、このメソッドによって返される最後の有効なユーザーになります。

        次の値を返します。
        ログインし、現在も有効である現在のUser ログインしているユーザーがいない場合、またはユーザーの有効期限が切れている場合は、 null
      • allUsers

        public Map<String,​User> allUsers()
        User.State.LOGGED_INまたはUser.State.LOGGED_OUTであるすべての既知のユーザーを返します。

        このデバイスにある時点でログインしたユーザーのみが返されます。

        次の値を返します。
        ローカルで既知のユーザーとユーザーのマップ。
      • deleteUser

        public User deleteUser (ユーザーユーザー)がAppExceptionをスローする
        このデバイスからユーザー認証情報を削除します。 ユーザーが現在ログインしている場合は、 プロセスの一部としてログアウトされます。 これはローカルの変更のみで、サーバー上のユーザーの状態には影響しません。
        パラメーター:
        user - 削除します
        次の値を返します。
        削除されたユーザー。
        次の例外がスローされます。
        AppException - UI スレッドから呼び出された場合、またはユーザーがログインしているがログアウトできなかった場合は 。
      • login

        public User login(認証情報)がAppExceptionをスローする
        認証プロバイダに関連付けられている指定された認証情報を持つユーザーとしてログインします。

        ログインするユーザーが現在のユーザーになります。 その他のアプリ機能は、現在のユーザーに代わって動作します。

        現在のユーザーがすでに存在する場合、そのユーザーは引き続きログインし、 allUsers()によって返されるリストで見つけることができます。

        switchUser(User)を使用して、現在のユーザーと見なされるユーザーを切り替えることもできます。

        パラメーター:
        credentials - ログインのタイプを表す認証情報。
        次の値を返します。
        ログイン ユーザーを表すUser
        次の例外がスローされます。
        AppException - ユーザーがログインできなかった場合。
      • loginAsync

        public RealmAsyncTask loginAsync​(Credentials credentials,
                                         App.Callback<User> callback)
        認証プロバイダに関連付けられている指定された認証情報を持つユーザーとしてログインします。

        ログインするユーザーが現在のユーザーになります。 その他のアプリ機能は、現在のユーザーに代わって動作します。

        現在のユーザーがすでに存在する場合、そのユーザーは引き続きログインし、 allUsers()によって返されるリストで見つけることができます。

        switchUser(User)を使用して、現在のユーザーと見なされるユーザーを切り替えることもできます。

        パラメーター:
        credentials - ログインのタイプを表す認証情報。
        callback - ログインが完了または失敗したときのコールバック。 コールバックは、このメソッドが呼び出されるのと同じスレッドで常に実行されます。
        次の例外がスローされます。
        IllegalStateException - ルーパー スレッドで呼び出されない場合。
      • addAuthenticationLister

        public void addAuthenticationListener​(AuthenticationListener listener)
        ログインやログアウトなどのユーザー イベントについて通知されるグローバル認証リスナーを設定します。

        認証リスナーへのコールバックは UI スレッドで実行されます。

        パラメーター:
        listener - 登録するリスナー。
        次の例外がスローされます。
        IllegalArgumentException - listenernullの場合。
      • deleteAuthenticationLister

        public void removeAuthenticationListener​(AuthenticationListener listener)
        提供されたグローバル認証リスナーを削除します。
        パラメーター:
        listener - 削除するリスナー。
      • getSync

        public Sync getSync()
        このアプリに関連付けられているローカルとリモートのRealm アプリ間でデータを同期している進行中のRealm Syncセッションを管理するSyncインスタンスを返します。
        次の値を返します。
        このAppに 関連付けられている同期インスタンス 。
      • getFunctions

        public Functions getFunctions(ユーザーユーザー)
        Realm アプリの Realm 関数を呼び出すための関数マネージャーを返します。

        これにより、アプリのデフォルトのコーデック レジストリを使用して引数と結果がエンコードおよびデコードされます。

        以下も参照してください。
        Functions, AppConfiguration.getDefaultCodecRegistry()
      • getFunctions

        public Functions getFunctions(ユーザーユーザー、 CodecRegistry CodecRegistry)
        引数と結果をエンコードおよびデコードするためのカスタム コーデック レジストリを使用して Realm アプリの Realm 関数を呼び出すための関数マネージャーを返します。
        以下も参照してください。
        Functions
      • getConfiguration

        public AppConfiguration getConfiguration()
        このアプリの構成オブジェクトを返します。
        次の値を返します。
        このアプリの構成。
      • equals

        公開ブール値は と等しくなります( Objecto
        2 つのアプリは同等と見なされ、両方が同じAppConfiguration.getAppId()を参照する場合は基礎の状態を共有します。
        上書き:
        equals クラス内 Object
      • ハッシュコード

        public int hashCode()
        上書き:
        hashCode クラス内 Object