Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
io.realm.mongodb

Clase aplicación

java.lang.Object
io.realm.mongodb.App

Una aplicación es el principal punto de entrada del lado del cliente para interactuar con una aplicación MongoDB Realm. La aplicación se puede utilizar para:

  • Register uses and perform various user-related operations through authentication providers (io.realm.mongodb.auth.ApiKeyAuth , EmailPasswordAuthImpl)

  • Sincroniza datos entre el dispositivo local y una aplicación Realm remota con Reinos Sincronizados

  • Invoke Realm App functions with Functions

  • Accede a datos remotos de bases de datos MongoDB con un io.realm.mongodb.mongo.MongoClient

To create an app that is linked with a remote Realm App initialize Realm and configure the App as shown below:

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);
}
}

After configuring the App you can start managing users, configure Synchronized Realms, call remote Realm Functions and access remote data through Mongo Collections. The examples below show the synchronized APIs which cannot be used from the main thread. For the equivalent asynchronous counterparts, see https://github.com/realm/realm-java/tree/main/examples/mongoDbRealmExample .

To register a new user and/or login with an existing user do as shown below:

// Register new user
APP.getEmailPassword().registerUser(username, password);
// Login with existing user
User user = APP.login(Credentials.emailPassword(username, password))

Con un usuario autorizado puedes sincronizar datos entre el dispositivo local y la aplicación Realm remota abriendo un realm con una io.realm.mongodb.sync.SyncConfiguration como se indica a continuación:

SyncConfiguration syncConfiguration = new SyncConfiguration.Builder(user, "<partition value>")
.build();
Realm instance = Realm.getInstance(syncConfiguration);
SyncSession session = APP.getSync().getSession(syncConfiguration);
instance.executeTransaction(realm -> {
realm.insert(...);
});
session.uploadAllLocalChanges();
instance.close();

Puedes llamar a funciones remotas de Realm como se muestra a continuación:

Functions functions = user.getFunctions();
Integer sum = functions.callFunction("sum", Arrays.asList(1, 2, 3, 4), Integer.class);

Y acceder a las colecciones desde la aplicación Realm remota como se muestra aquí:

MongoClient client = user.getMongoClient(SERVICE_NAME)
MongoDatabase database = client.getDatabase(DATABASE_NAME)
MongoCollection<DocumentT> collection = database.getCollection(COLLECTION_NAME);
Long count = collection.count().get()

Tip

Constructor and Description
App (
String appId
)

Constructor para crear una aplicación según la AppConfiguration indicada.

Modificador y Tipo
Clase y descripción

public static

public static interface

Modificador y Tipo
Campo y Descripción

public static ThreadPoolExecutor

NETWORK_POOL_EXECUTOR

Thread pool used when doing network requests against MongoDB Realm.This pool is only exposed for testing purposes and replacing it while the queue is not empty will result in undefined behaviour.

Modificador y Tipo
Método y descripción

public void

Establece un listener de autenticación global que será notificado sobre eventos de usuario como inicio de sesión y cierre de sesión.

public Map

Devuelve todos los usuarios conocidos que son User.State.LOGGED_IN o User.State.LOGGED_OUT.

public User

Returns the current user that is logged in and still valid.

public booleano

Se considerará que dos aplicaciones son iguales y compartirán su estado subyacente si ambas hacen referencia al mismo AppConfiguration.getAppId() .

Returns the configuration object for this app.

Returns a wrapper for interacting with functionality related to users either being created or logged in using the Credentials.Provider.EMAIL_PASSWORD identity provider.

public Functions

User user,
CodecRegistry codecRegistry
)

Returns a Functions manager for invoking the Realm App's Realm Functions with a custom codec registry for encoding and decoding arguments and results.

public Functions

Devuelve un administrador de funciones para invocar las funciones de Realm de la aplicación Realm.

public Sync

Devuelve la instancia de sincronización que administra las sesiones de sincronización de Realm en curso y sincroniza los datos entre la aplicación de Realm local y la aplicación de Realm remota asociada con esta aplicación.

public int

public User

Credentials credentials
)

Logs in as a user with the given credentials associated with an authentication provider.

Logs in as a user with the given credentials associated with an authentication provider.

public void

Removes the provided global authentication listener.

public User

Removes a users credentials from this device.

protegido void

OsJavaNetworkTransport transport
)

Expuesto para pruebas.

public User

Switch current user.

  • Methods inherited from class java.lang.Object : getClass , hashCode , equals , clone , toString , notify , notifyAll , wait , wait , wait , finalize

Thread pool used when doing network requests against MongoDB Realm.This pool is only exposed for testing purposes and replacing it while the queue is not empty will result in undefined behaviour.

public App (
String appId
)
public App (
)

Constructor para crear una aplicación según la AppConfiguration indicada.

Parámetros

  • config - La configuración a utilizar para esta instancia de la aplicación.

Establece un oyente de autenticación global que recibirá notificaciones sobre eventos de usuario, como inicio y cierre de sesión. Las devoluciones de llamadas a los oyentes de autenticación se realizarán en el hilo de la interfaz de usuario.

Parámetros

  • listener - Listener para registrar.

Throws

public Map allUsers ()

Devuelve todos los usuarios conocidos que son User.State.LOGGED_IN o User.State.LOGGED_OUT.

Only users that at some point logged into this device will be returned.

Devuelve

a map of user identifiers and users known locally.

public User currentUser ()

Devuelve el usuario actual que ha iniciado sesión y aún es válido. Un usuario se invalida cuando cierra sesión o cuando su token de actualización caduca o se revoca.

If two or more users are logged in, it is the last valid user that is returned by this method.

Devuelve

Usuario actual que ha iniciado sesión y aún es válido. null si ningún usuario ha iniciado sesión o el usuario ha expirado.

public boolean equals (
)

Se considerará que dos aplicaciones son iguales y compartirán su estado subyacente si ambas hacen referencia al mismo AppConfiguration.getAppId() .

Anulaciones

equals en la clase Objeto

Returns the configuration object for this app.

Devuelve

La configuración de esta aplicación.

Returns a wrapper for interacting with functionality related to users either being created or logged in using the Credentials.Provider.EMAIL_PASSWORD identity provider.

Devuelve

contenedor para interactuar con el proveedor de identidad Credentials.Provider.EMAIL_PASSWORD.

User user,
CodecRegistry codecRegistry
)

Returns a Functions manager for invoking the Realm App's Realm Functions with a custom codec registry for encoding and decoding arguments and results.

Devuelve un Administrador de funciones para invocar las funciones de Realm de la aplicación Realm. Esto usará el registro de códecs por defecto de la aplicación para codificar y decodificar argumentos y resultados.

public Sync getSync ()

Devuelve la instancia de sincronización que administra las sesiones de sincronización de Realm en curso y sincroniza los datos entre la aplicación de Realm local y la aplicación de Realm remota asociada con esta aplicación.

Devuelve

the Sync instance associated with this App.

public int hashCode ()

Anulaciones

hashCode en la clase Objeto

public User login (
Credentials credentials
)

Inicia sesión como un usuario con las credenciales proporcionadas asociadas a un proveedor de autenticación. El usuario que inicia sesión se convierte en el usuario actual. Otras funciones de la aplicación actúan en nombre del usuario actual.

Si ya existe un usuario activo, ese usuario sigue ha iniciado sesión y se puede encontrar en la lista devuelta por allUsers() .

It is also possible to switch between which user is considered the current user by using switchUser(User) .

Parámetros

  • credentials - las credenciales que representan el tipo de inicio de sesión.

Devuelve

un usuario que representa al usuario conectado.

Throws

Inicia sesión como un usuario con las credenciales proporcionadas asociadas a un proveedor de autenticación. El usuario que inicia sesión se convierte en el usuario actual. Otras funciones de la aplicación actúan en nombre del usuario actual.

Si ya existe un usuario activo, ese usuario sigue ha iniciado sesión y se puede encontrar en la lista devuelta por allUsers() .

It is also possible to switch between which user is considered the current user by using switchUser(User) .

Parámetros

  • credentials - las credenciales que representan el tipo de inicio de sesión.

  • callback - callback when logging in has completed or failed. The callback will always happen on the same thread as this method is called on.

Throws

Removes the provided global authentication listener.

Parámetros

  • listener - listener to remove.

public User removeUser (
User user
)

Removes a users credentials from this device. If the user was currently logged in, they will be logged out as part of the process. This is only a local change and does not affect the user state on the server.

Parámetros

  • user - to remove

Devuelve

usuario que fue eliminado.

Throws

  • AppException - if called from the UI thread or if the user was logged in, but could not be logged out.

protected void setNetworkTransport (
OsJavaNetworkTransport transport
)

Expuesto para pruebas. Intercambie el transporte de red configurado actualmente por el proporcionado. Esto solo debe hacerse si no se están ejecutando actualmente solicitudes de red.

public User switchUser (
User user
)

Switch current user.The current user is the user returned by currentUser() .

Parámetros

  • user - the new current user.

Throws

Volver

io.realm.mongodb