Aplicativo de classe
- java.lang.Object
-
- io.realm.mongodb.App
-
public class App extends Object
Uma aplicação é o principal ponto de entrada do lado do cliente para interagir com uma aplicação do MongoDB Realm.A aplicação pode ser usada para:
- Registrar usos e realizar várias operações relacionadas ao usuário por meio de provedores de autenticação (
ApiKeyAuth
,EmailPasswordAuthImpl
) - Sincronize dados entre o dispositivo local e um aplicativo Realm remoto com Realms sincronizados
- Invoque as funções do aplicativo Realm com
Functions
- Acesse dados remotos de bancos de dados MongoDB com um
MongoClient
Para criar um aplicativo vinculado a um aplicativo Realm remoto, inicialize o Realm e configure o aplicativo conforme mostrado abaixo:
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); } }
Depois de configurar o aplicativo , você pode começar a gerenciar usuários, configurar Realms sincronizados, chamar Funções de Realm remotas e acessar dados remotos por meio das Coleções do Mongo. Os exemplos abaixo mostram as APIs sincronizadas que não podem ser usadas no thread principal. Para as contrapartes assíncronas equivalentes. O projeto de exemplo em consulte https://github.com/realm/realm-java/tree/v10/examples/mongoDbRealmExample.
Para registrar um novo usuário e/ou fazer login com um usuário existente, faça o seguinte:
// Registrar novo usuário App.getEmailPassword().registerUser(username, senha); // Faça login com o usuário existente O usuário user = App.login(Credentials.emailPassword(username, senha))
Com um usuário autorizado, você pode sincronizar dados entre o dispositivo local e o aplicativo Realm remoto abrindo um Realm com um
SyncConfiguration
conforme indicado abaixo:SyncConfiguration syncConfiguration = novo SyncConfiguration.Builder(user, "<partition value>") .build(); Instância de Realm = Realm.getInstance(syncConfiguration); Sessão SyncSession = App.getSync().getSession(syncConfiguration); instance.executeTransaction(Realm -> { realm.insert(...); }); Session.uploadAllLocalChanges(); instance.close();
Você pode chamar Função de Realm remotas como mostrado abaixo:
Funções functions = user.getFunctions(); Soma inteira = functions.callFunction("soma", Arrays.asList(1, 2, 3, 4), Integer.class);
E acesse collection do Realm remoto, conforme mostrado aqui:
Cliente MongoClient = user.getMongoClient(SERVICE_NAME) MongoDatabase reconhecimento de data center = client.getDatabase(reconhecimento de data center) collection MongoCollection<DocumentT> = database.getCollection(COLLECTION_NAME); Contagem longa = collection.count().get()
- Registrar usos e realizar várias operações relacionadas ao usuário por meio de provedores de autenticação (
-
-
Resumo da classe aninhada
Classes agrupadas Modificador e tipo classe Descrição static interface
App.Callback<T>
chamada de resposta para métodos assíncronos disponíveis para oApp
.static class
App.Result<T>
Classe de resultado que representa o resultado de uma solicitação assíncrona deste aplicativo para o MongoDB Realm.
-
Resumo do campo
Campos Modificador e tipo Campo Descrição static ThreadPoolExecutor
NETWORK_POOL_EXECUTOR
Pool de threads usado ao fazer solicitações de rede no MongoDB Realm.
-
Resumo do construtor
Construtores Constructor Descrição App(AppConfiguration config)
Construtor para criar um aplicativo de acordo com a AppConfiguration fornecida .App(String appId)
-
Resumo do método
Todos os métodos Métodos de instância Métodos concretos Modificador e tipo Método Descrição void
addAuthenticationListener(AuthenticationListener listener)
Define um ouvinte de autenticação global que será notificado sobre eventos do usuário, como login e logout.Map<String,User>
allUsers()
Retorna todos os usuários conhecidos que sãoUser.State.LOGGED_IN
ouUser.State.LOGGED_OUT
.User
currentUser()
Retorna o usuário atual que está conectado e ainda é válido.boolean
equals(Object o)
Dois aplicativos são considerados iguais e compartilharão seu estado subjacente se ambos se referirem ao mesmoAppConfiguration.getAppId()
.AppConfiguration
getConfiguration()
Retorna o objeto de configuração para este aplicativo.EmailPasswordAuth
getEmailPassword()
Retorna um wrapper para interagir com a funcionalidade relacionada aos usuários sendo criados ou conectados usando o provedor de identidadeCredentials.Provider.EMAIL_PASSWORD
.Functions
getFunctions(User user)
Retorna um gerenciador de funções para invocar as funções do Realm do aplicativo Realm.Functions
getFunctions(User user, CodecRegistry codecRegistry)
Retorna um gerenciador de Função de Realm para invocar as Função de Realm do Realm com um registro de codec personalizado para codificar e decodificar argumentos e resultados.Sync
getSync()
Retorna a instância de sincronização gerenciando as sessões de sincronização de realm em andamento, sincronizando dados entre o aplicativo de realm local e remoto associado a esse aplicativo.int
hashCode()
User
login(Credentials credentials)
Faz login como um usuário com as credenciais fornecidas associadas a um fornecedor de autenticação.RealmAsyncTask
loginAsync(Credentials credentials, App.Callback<User> callback)
Faz login como um usuário com as credenciais fornecidas associadas a um fornecedor de autenticação.void
removeAuthenticationListener(AuthenticationListener listener)
Remove o ouvinte de autenticação global fornecido.User
removeUser(User user)
Remove as credenciais do usuário deste dispositivo.User
switchUser(User user)
Trocar o usuário atual.
-
-
-
Detalhes do campo
-
NETWORK_POOL_EXECUTOR
public static ThreadPoolExecutor NETWORK_POOL_EXECUTOR
Pool de threads usado ao fazer solicitações de rede no MongoDB Realm.Esse pool só é exposto para fins de teste e substituí-lo enquanto a fila não está vazia resultará em comportamento indefinido.
-
-
Detalhes do construtor
-
Aplicação
aplicativo público (String appId)
-
Aplicação
aplicativo público (configuração do AppConfiguration )
Construtor para criar um aplicativo de acordo com a AppConfiguration fornecida .- Parâmetros:
config
- A configuração a ser usada para esta instância do aplicativo .- Veja também:
AppConfiguration.Builder
-
-
Detalhes do método
-
currentUser
@Nullable public User currentUser()
Retorna o usuário atual que está conectado e ainda é válido.Um usuário é invalidado quando ele se desconecta ou o token de atualização do usuário expira ou é revogado.
Se dois ou mais usuários estiverem conectados, será o último usuário válido que será retornado por este método.
- Retorna:
User
atual que está conectado e ainda é válido.null
se nenhum usuário estiver conectado ou o usuário tiver expirado.
-
allUsers
public Map<String,User> allUsers()
Retorna todos os usuários conhecidos que sãoUser.State.LOGGED_IN
ouUser.State.LOGGED_OUT
.Somente os usuários que, em algum ponto, fizeram login neste dispositivo serão retornados.
- Retorna:
- um mapa de identificadores de usuário e usuários conhecidos localmente.
-
switchUser
usuário público switchUser(Usuário usuário)
Trocar o usuário atual.O usuário atual é o usuário retornado por
currentUser()
.- Parâmetros:
user
- o novo usuário atual.- Lançamentos:
IllegalArgumentException
- se o usuário não forUser.State.LOGGED_IN
.
-
removeUser
O usuário público removeUser (usuário do usuário) joga AppException
Remove as credenciais do usuário deste dispositivo. Se o usuário estava conectado no momento, ele será desconectado como parte do processo. Esta é apenas uma alteração local e não afeta o estado do usuário no servidor.- Parâmetros:
user
- para remover- Retorna:
- usuário que foi removido.
- Lançamentos:
AppException
- se for chamado do thread da UI ou se o usuário estiver conectado, mas não puder ser desconectado.
-
login
O login de usuário público (credenciais de Credenciais) joga AppException
Faz login como um usuário com as credenciais fornecidas associadas a um fornecedor de autenticação.O usuário que faz login se torna o usuário atual. As outras funcionalidades do aplicativo atuam em nome do usuário atual.
Se já houver um usuário atual, esse usuário ainda estará conectado e poderá ser encontrado na lista retornada por
allUsers()
.Também é possível alternar entre qual usuário é considerado o usuário atual usando
switchUser(User)
.- Parâmetros:
credentials
- as credenciais que representam o tipo de login.- Retorna:
- um
User
representando o usuário conectado. - Lançamentos:
AppException
- se o usuário não puder fazer login.
-
loginAsync
public RealmAsyncTask loginAsync(Credentials credentials, App.Callback<User> callback)
Faz login como um usuário com as credenciais fornecidas associadas a um fornecedor de autenticação.O usuário que faz login se torna o usuário atual. As outras funcionalidades do aplicativo atuam em nome do usuário atual.
Se já houver um usuário atual, esse usuário ainda estará conectado e poderá ser encontrado na lista retornada por
allUsers()
.Também é possível alternar entre qual usuário é considerado o usuário atual usando
switchUser(User)
.- Parâmetros:
credentials
- as credenciais que representam o tipo de login.callback
- chamada de resposta quando o login for concluído ou falhar. A chamada de resposta sempre acontecerá no mesmo thread em que este método é chamado.- Lançamentos:
IllegalStateException
- se não for chamado em um thread looper.
-
getEmailPassword
public EmailPasswordAuth getEmailPassword()
Retorna um wrapper para interagir com a funcionalidade relacionada aos usuários sendo criados ou conectados usando o provedor de identidadeCredentials.Provider.EMAIL_PASSWORD
.- Retorna:
- wrapper para interagir com o provedor de identidade do
Credentials.Provider.EMAIL_PASSWORD
.
-
addAuthenticationListener
public void addAuthenticationListener(AuthenticationListener listener)
Define um ouvinte de autenticação global que será notificado sobre eventos do usuário, como login e logout.As chamadas de resposta para os ouvintes de autenticação acontecerão no thread da interface do usuário.
- Parâmetros:
listener
- ouvinte para registrar.- Lançamentos:
IllegalArgumentException
- selistener
fornull
.
-
removeAuthenticationListener
public void removeAuthenticationListener(AuthenticationListener listener)
Remove o ouvinte de autenticação global fornecido.- Parâmetros:
listener
- ouvinte a ser removido.
-
Sincronize
Public Sync getSync()
Retorna a instância de sincronização gerenciando as sessões de sincronização de realm em andamento, sincronizando dados entre o aplicativo de realm local e remoto associado a esse aplicativo.- Retorna:
- a instância de sincronização associada a este aplicativo.
-
getFunctions
funções públicas getFunctions(Usuário usuário)
Retorna um gerenciador de funções para invocar as funções do Realm do aplicativo Realm.Isso usará o registro de codecs padrão do aplicativo para codificar e decodificar argumentos e resultados.
- Veja também:
Functions
,AppConfiguration.getDefaultCodecRegistry()
-
getFunctions
funções públicas getFunctions(Usuário , CodecRegistry codecRegistry)
Retorna um gerenciador de Função de Realm para invocar as Função de Realm do Realm com um registro de codec personalizado para codificar e decodificar argumentos e resultados.- Veja também:
Functions
-
getConfiguration
public AppConfiguration getConfiguration()
Retorna o objeto de configuração para este aplicativo.- Retorna:
- a configuração deste aplicativo.
-
é igual a
boolean público igual (objeto o)
Dois aplicativos são considerados iguais e compartilharão seu estado subjacente se ambos se referirem ao mesmoAppConfiguration.getAppId()
.
-
-