io.realm.mongodb
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 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()
Constructores
Constructor and Description |
|---|
Constructor para crear una aplicación según la AppConfiguration indicada. |
Nested Class Summary
Modificador y Tipo | Clase y descripción |
|---|---|
| |
|
Field Summary
Modificador y Tipo | Campo y Descripción |
|---|---|
public static ThreadPoolExecutor | 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. |
Resumen del método
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 | allUsers () Devuelve todos los usuarios conocidos que son User.State.LOGGED_IN o User.State.LOGGED_OUT. |
public User | currentUser () 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() . |
public AppConfiguration | Returns the configuration object for this app. |
public EmailPasswordAuth | 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 | 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 | 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. |
public int | hashCode () |
public User | Logs in as a user with the given credentials associated with an authentication provider. |
public RealmAsyncTask | 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 | Expuesto para pruebas. |
public User | Switch current user. |
Inherited Methods
Methods inherited from class java.lang.Object :
getClass,hashCode,equals,clone,toString,notify,notifyAll,wait,wait,wait,finalize
Detalle del Campo
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.
Detalle del constructor
Constructor para crear una aplicación según la AppConfiguration indicada. Parámetros
|
Detalle del método
addAuthenticationListener
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
Throws
|
todos los usuarios
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. |
currentUser
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. |
equals
Se considerará que dos aplicaciones son iguales y compartirán su estado subyacente si ambas hacen referencia al mismo AppConfiguration.getAppId() . Anulaciones
|
getConfiguration
public AppConfiguration getConfiguration () |
|---|
Returns the configuration object for this app. Devuelve La configuración de esta aplicación. |
obtenerContraseña de correo electrónico
public EmailPasswordAuth getEmailPassword () |
|---|
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. |
getFunctions
Returns a Functions manager for invoking the Realm App's Realm Functions with a custom codec registry for encoding and decoding arguments and results. Tip |
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. |
getSync
hashCode
login
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
Devuelve un usuario que representa al usuario conectado. Throws
|
loginAsync
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
Throws
|
removeAuthenticationListener
Removes the provided global authentication listener. Parámetros
|
removeUser
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
Devuelve usuario que fue eliminado. Throws
|
establecerTransporteDeRed
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. |
switchUser
Switch current user.The current user is the user returned by currentUser() . Parámetros
Throws
|