Aplicativo de classe


  • 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()
     

    Veja também:
    AppConfiguration.Builder, EmailPasswordAuth, SyncConfiguration, User.getFunctions(), User.getMongoClient(String)
    • 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ão User.State.LOGGED_IN ou User.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.
      • 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.
      • 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 - se listener for null.
      • 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 ,
                                      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.