クラスアプリ
- java.lang.Object
-
- io.realm.mongodb.App
-
public class App extends Object
Appは、 MongoDB Realm Appを操作するためのメインのクライアント側エントリ ポイントです。このアプリは、次の目的で使用できます。
- 使用状況を登録し、認証プロバイダーを通じてユーザーに関するさまざまな操作を実行するようになりました(
ApiKeyAuth
、EmailPasswordAuthImpl
) - 同期された 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()
- 使用状況を登録し、認証プロバイダーを通じてユーザーに関するさまざまな操作を実行するようになりました(
-
-
ネストされたクラスの概要
ネストされたクラス 修飾子と型 クラス 説明 static interface
App.Callback<T>
App
で使用できる非同期メソッドのコールバック。static class
App.Result<T>
このアプリから MongoDB Realm に対する非同期リクエストの結果を表す結果クラス。
-
フィールドの概要
フィールド 修飾子と型 フィールド 説明 static ThreadPoolExecutor
NETWORK_POOL_EXECUTOR
MongoDB Realm に対してネットワーク リクエストを実行するときに使用されるスレッド プール。
-
コンストラクターの概要
コンストラクター Constructor 説明 App(AppConfiguration config)
指定されたAppConfigurationに従ってアプリを作成するためのコンストラクター。App(String appId)
-
メソッドの概要
すべてのメソッド インスタンス メソッド 具象メソッド 修飾子と型 方式 説明 void
addAuthenticationListener(AuthenticationListener listener)
ログインやログアウトなどのユーザー イベントについて通知されるグローバル認証リスナーを設定します。Map<String,User>
allUsers()
User.State.LOGGED_IN
またはUser.State.LOGGED_OUT
であるすべての既知のユーザーを返します。User
currentUser()
ログインしていてまだ有効な現在のユーザーを返します。boolean
equals(Object o)
2 つのアプリは同等と見なされ、両方が同じAppConfiguration.getAppId()
を参照する場合は基礎の状態を共有します。AppConfiguration
getConfiguration()
このアプリの構成オブジェクトを返します。EmailPasswordAuth
getEmailPassword()
Credentials.Provider.EMAIL_PASSWORD
ID プロバイダーを使用して作成またはログインされたユーザーに関連する機能を操作するためのラッパーを返します。Functions
getFunctions(User user)
Realm アプリの Realm 関数を呼び出すための関数マネージャーを返します。Functions
getFunctions(User user, CodecRegistry codecRegistry)
引数と結果をエンコードおよびデコードするためのカスタム コーデック レジストリを使用して Realm アプリの Realm 関数を呼び出すための関数マネージャーを返します。Sync
getSync()
このアプリに関連付けられているローカルとリモートのRealm アプリ間でデータを同期している進行中のRealm Syncセッションを管理するSyncインスタンスを返します。int
hashCode()
User
login(Credentials credentials)
認証プロバイダに関連付けられている指定された認証情報を持つユーザーとしてログインします。RealmAsyncTask
loginAsync(Credentials credentials, App.Callback<User> callback)
認証プロバイダに関連付けられている指定された認証情報を持つユーザーとしてログインします。void
removeAuthenticationListener(AuthenticationListener listener)
提供されたグローバル認証リスナーを削除します。User
removeUser(User user)
このデバイスからユーザー認証情報を削除します。User
switchUser(User user)
現在のユーザーを切り替えます。
-
-
-
フィールドの詳細
-
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
。
-
[switchUser]
publicユーザーswitchUser (ユーザーユーザー)
現在のユーザーを切り替えます。現在のユーザーは、
currentUser()
によって返されたユーザーです。- パラメーター:
user
- 新しい現在のユーザー。- 次の例外がスローされます。
IllegalArgumentException
- ユーザーがUser.State.LOGGED_IN
でない場合。
-
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
- ルーパー スレッドで呼び出されない場合。
-
getEmailPassword
public EmailPasswordAuth getEmailPassword()
Credentials.Provider.EMAIL_PASSWORD
ID プロバイダーを使用して作成またはログインされたユーザーに関連する機能を操作するためのラッパーを返します。- 次の値を返します。
Credentials.Provider.EMAIL_PASSWORD
IdP を操作するためのラッパー。
-
addAuthenticationLister
public void addAuthenticationListener(AuthenticationListener listener)
ログインやログアウトなどのユーザー イベントについて通知されるグローバル認証リスナーを設定します。認証リスナーへのコールバックは UI スレッドで実行されます。
- パラメーター:
listener
- 登録するリスナー。- 次の例外がスローされます。
IllegalArgumentException
-listener
がnull
の場合。
-
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()
を参照する場合は基礎の状態を共有します。
-
-