패키지 io.realm.mongodb

클래스 앱


  • public class App
    extends Object
    MongoDB Realm 앱 과 상호 작용하기 위한 주요 클라이언트 사이드 진입점입니다.

    으로 다음을 수행할 수 있습니다.

    • 인증 제공자를 통해 사용을 등록하고 다양한 사용자 관련 작업을 수행합니다(ApiKeyAuth, EmailPasswordAuthImpl).
    • 동기화된 Realm을 사용하여 로컬 장치와 원격 Realm 앱 간에 데이터 동기화
    • 다음을 사용하여 Realm 앱 함수 호출 Functions
    • 다음을 사용하여 MongoDB 데이터베이스에서 원격 데이터에 액세스 MongoClient

    원격 Realm 앱 과 연결된 앱을 만들려면 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 collection을 통해 원격 데이터에 액세스할 수 있습니다. 아래 예제는 메인 스레드에서 사용할 수 없는 동기화된 API를 보여줍니다. 이에 해당하는 비동기 대응 항목의 경우. 의 예제 프로젝트는 https://github.com/realm/realm-java/tree/v10/examples/mongoDbRealmExample을 참조하세요.

    새 사용자를 등록하거나 기존 사용자로 로그인하려면 아래와 같이 하세요:

         // 새 사용자 등록 APP.getEmailPassword().registerUser(username, password); // 기존 사용자로 로그인 User user = APP.login(Credentials.emailPassword(username, 비밀번호))
     

    권한이 부여된 사용자를 통해 아래와 같이 SyncConfiguration (으)로 Realm을 열어 로컬 장치와 원격 Realm 앱 간에 데이터를 동기화할 수 있습니다.

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

    아래와 같이 원격 Realm 함수를 호출할 수 있습니다.

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

    그리고 다음과 같이 원격 Realm 앱에서 collection에 액세스합니다.

         MongoClient 클라이언트 = user.getMongoClient(SERVICE_NAME)
         MongoDatabase database = client.getDatabase(DATABASE_NAME)
         MongoCollection<DocumentT> collection = database.getCollection(COLLECTION_NAME);
         긴 카운트 = collection.count().get()
     

    다음도 참조하세요.
    AppConfiguration.Builder, EmailPasswordAuth, SyncConfiguration, User.getFunctions(), User.getMongoClient(String)
    • 필드 세부 정보

      • NETWORK_POOL_EXECUTOR

        public static ThreadPoolExecutor NETWORK_POOL_EXECUTOR
        MongoDB Realm에 대해 네트워크 요청을 수행할 때 사용되는 스레드 풀입니다.

        이 풀은 테스트 목적으로만 노출되며 대기열이 비어 있지 않은 상태에서 풀을 교체하면 정의되지 않은 동작이 발생합니다.

    • 생성자 세부 정보

      • 공개 앱​(AppConfiguration config)
        지정된 AppConfiguration 에 따라 을 만들기 위한 생성자입니다.
        매개변수:
        config - 이 인스턴스에 사용할 구성입니다.
        다음도 참조하세요.
        AppConfiguration.Builder
    • 메서드 세부 정보

      • currentUser

        @Nullable
        공개 사용자 currentUser()
        로그인하여 여전히 유효한 현재 사용자를 반환합니다.

        사용자는 로그아웃하거나 사용자의 새로 고침 토큰이 만료되거나 취소되면 무효화됩니다.

        두 명 이상의 사용자가 로그인한 경우 이 메서드는 마지막으로 유효한 사용자를 반환합니다.

        반환합니다:
        로그인했으며 여전히 유효한 현재 User 입니다. 로그인한 사용자가 없거나 사용자가 만료된 경우 null .
      • allUsers

        public Map<String,​User> allUsers()
        User.State.LOGGED_IN 또는 User.State.LOGGED_OUT 인 모든 알려진 사용자를 반환합니다.

        특정 점에 이 장치에 로그인한 사용자만 반환됩니다.

        반환합니다:
        사용자 식별자와 로컬에 알려진 사용자의 맵입니다.
      • removeUser

        공개 사용자 removeUser​(사용자 사용자)가 AppException을 발생시킵니다.
        이 기기에서 사용자 자격 증명을 제거합니다. 사용자가 현재 로그인되어 있었다면 프로세스의 일부로 로그아웃됩니다. 이는 로컬 변경일 뿐이며 서버의 사용자 상태에는 영향을 주지 않습니다.
        매개변수:
        user - 제거
        반환합니다:
        제거된 사용자입니다.
        예외 처리:
        AppException - UI 스레드에서 호출되거나 사용자가 로그인했지만 로그아웃할 수 없는 경우.
      • login

        공개 사용자 로그인(자격 증명)이 AppException을 발생시킵니다.
        인증 제공자와 연결된 지정된 자격 증명을 사용하여 사용자로 로그인합니다.

        로그인한 사용자가 현재 사용자가 됩니다. 다른 앱 기능은 현재 사용자를 대신하여 작동합니다.

        현재 사용자가 이미 있었다면 해당 사용자는 여전히 로그인되어 있으며 allUsers() 가 반환한 목록에서 찾을 수 있습니다.

        switchUser(User) 을(를) 사용하여 현재 사용자로 간주되는 사용자를 전환할 수도 있습니다.

        매개변수:
        credentials - 로그인 유형을 나타내는 자격 증명입니다.
        반환합니다:
        로그인한 사용자를 나타내는 User 입니다.
        예외 처리:
        AppException - 사용자가 로그인할 수 없는 경우.
      • loginAsync

        public RealmAsyncTask loginAsync​(Credentials credentials,
                                         App.Callback<User> callback)
        인증 제공자와 연결된 지정된 자격 증명을 사용하여 사용자로 로그인합니다.

        로그인한 사용자가 현재 사용자가 됩니다. 다른 앱 기능은 현재 사용자를 대신하여 작동합니다.

        현재 사용자가 이미 있었다면 해당 사용자는 여전히 로그인되어 있으며 allUsers() 가 반환한 목록에서 찾을 수 있습니다.

        switchUser(User) 을(를) 사용하여 현재 사용자로 간주되는 사용자를 전환할 수도 있습니다.

        매개변수:
        credentials - 로그인 유형을 나타내는 자격 증명입니다.
        callback - 로그인 완료 또는 실패 시 콜백을 실행합니다. 콜백은 항상 이 메서드가 호출되는 동일한 스레드에서 발생합니다.
        예외 처리:
        IllegalStateException - 루퍼 스레드에서 호출되지 않은 경우.
      • addAuthenticationListener

        public void addAuthenticationListener​(AuthenticationListener listener)
        로그인 및 로그아웃과 같은 사용자 이벤트에 대해 알림을 받을 글로벌 인증 리스너를 설정합니다.

        인증 수신기에 대한 콜백은 UI 스레드에서 발생합니다.

        매개변수:
        listener - 리스너를 등록합니다.
        예외 처리:
        IllegalArgumentException - listenernull 인 경우.
      • removeAuthenticationListener

        public void removeAuthenticationListener​(AuthenticationListener listener)
        제공된 전역 인증 수신기를 제거합니다.
        매개변수:
        listener - 제거할 리스너입니다.
      • getSync

        public Sync getSync()
        이 앱과 연결된 로컬 및 원격 Realm App 간에 데이터를 동기화하는 진행 중인 Realm 동기화 세션 을 관리하는 Sync 인스턴스를 반환합니다.
        반환합니다:
        과 연결된 Sync 인스턴스입니다.
      • getFunctions

        public Functions getFunctions(사용자 사용자)
        Realm 앱의 Realm 함수를 호출하기 위한 함수 관리자를 반환합니다.

        이렇게 하면 앱의 기본 코덱 레지스트리를 사용하여 인수와 결과를 인코딩하고 디코딩합니다.

        다음도 참조하세요.
        Functions, AppConfiguration.getDefaultCodecRegistry()
      • getFunctions

        public Functions getFunctions​(사용자 사용자,
                                      CodecRegistry CodecRegistry)
        인수와 결과를 인코딩하고 디코딩하기 위한 사용자 지정 코덱 레지스트리를 사용하여 Realm 앱의 Realm 함수를 호출하는 함수 관리자를 반환합니다.
        다음도 참조하세요.
        Functions
      • getConfiguration

        공개 AppConfiguration getConfiguration()
        이 앱의 구성 객체를 반환합니다.
        반환합니다:
        이 앱의 구성입니다.
      • 해시 코드

        public int 해시 코드()
        재정의:
        hashCode 수업 중 Object