클래스 앱
- java.lang.Object
-
- io.realm.mongodb.App
-
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()
- 인증 제공자를 통해 사용을 등록하고 다양한 사용자 관련 작업을 수행합니다(
-
-
중첩된 클래스 요약
중첩된 클래스 수정자 및 유형 클래스 설명 static interface
App.Callback<T>
App
에서 사용할 수 있는 비동기 메서드에 대한 콜백입니다.static class
App.Result<T>
이 앱에서 MongoDB Realm에 대한 비동기 요청의 결과를 나타내는 결과 클래스입니다.
-
필드 요약
필드 수정자 및 유형 필드 설명 static ThreadPoolExecutor
NETWORK_POOL_EXECUTOR
MongoDB Realm에 대해 네트워크 요청을 수행할 때 사용되는 스레드 풀입니다.
-
생성자 요약
생성자 Constructor 설명 App(AppConfiguration config)
지정된 AppConfiguration 에 따라 앱 을 만들기 위한 생성자입니다.App(String appId)
-
메서드 요약
모든 메서드 인스턴스 메서드 구체적인 방법 수정자 및 유형 메서드 설명 void
addAuthenticationListener(AuthenticationListener listener)
로그인 및 로그아웃과 같은 사용자 이벤트에 대해 알림을 받을 글로벌 인증 리스너를 설정합니다.Map<String,User>
allUsers()
User.State.LOGGED_IN
또는User.State.LOGGED_OUT
인 모든 알려진 사용자를 반환합니다.User
currentUser()
로그인하여 여전히 유효한 현재 사용자를 반환합니다.boolean
equals(Object o)
두 앱은 동일한 것으로 간주되며 동일한AppConfiguration.getAppId()
을 참조하는 경우 기본 상태를 공유합니다.AppConfiguration
getConfiguration()
이 앱의 구성 객체를 반환합니다.EmailPasswordAuth
getEmailPassword()
Credentials.Provider.EMAIL_PASSWORD
ID 제공자를 사용하여 생성되거나 로그인되는 사용자와 관련된 기능과 상호 작용하기 위한 래퍼를 반환합니다.Functions
getFunctions(User user)
Realm 앱의 Realm 함수를 호출하기 위한 함수 관리자를 반환합니다.Functions
getFunctions(User user, CodecRegistry codecRegistry)
인수와 결과를 인코딩하고 디코딩하기 위한 사용자 지정 코덱 레지스트리를 사용하여 Realm 앱의 Realm 함수를 호출하는 함수 관리자를 반환합니다.Sync
getSync()
이 앱과 연결된 로컬 및 원격 Realm App 간에 데이터를 동기화하는 진행 중인 Realm 동기화 세션 을 관리하는 Sync 인스턴스를 반환합니다.int
hashCode()
User
login(Credentials credentials)
인증 제공자와 연결된 지정된 자격 증명을 사용하여 사용자로 로그인합니다.RealmAsyncTask
loginAsync(Credentials credentials, App.Callback<User> callback)
인증 제공자와 연결된 지정된 자격 증명을 사용하여 사용자로 로그인합니다.void
removeAuthenticationListener(AuthenticationListener listener)
제공된 전역 인증 수신기를 제거합니다.User
removeUser(User user)
이 기기에서 사용자 자격 증명을 제거합니다.User
switchUser(User user)
현재 사용자를 전환합니다.
-
-
-
필드 세부 정보
-
NETWORK_POOL_EXECUTOR
public static ThreadPoolExecutor NETWORK_POOL_EXECUTOR
MongoDB Realm에 대해 네트워크 요청을 수행할 때 사용되는 스레드 풀입니다.이 풀은 테스트 목적으로만 노출되며 대기열이 비어 있지 않은 상태에서 풀을 교체하면 정의되지 않은 동작이 발생합니다.
-
-
생성자 세부 정보
-
앱
공개 앱(문자열 appId)
-
앱
공개 앱(AppConfiguration config)
지정된 AppConfiguration 에 따라 앱 을 만들기 위한 생성자입니다.- 매개변수:
config
- 이 앱 인스턴스에 사용할 구성입니다.- 다음도 참조하세요.
AppConfiguration.Builder
-
-
메서드 세부 정보
-
currentUser
@Nullable 공개 사용자 currentUser()
로그인하여 여전히 유효한 현재 사용자를 반환합니다.사용자는 로그아웃하거나 사용자의 새로 고침 토큰이 만료되거나 취소되면 무효화됩니다.
두 명 이상의 사용자가 로그인한 경우 이 메서드는 마지막으로 유효한 사용자를 반환합니다.
- 반환합니다:
- 로그인했으며 여전히 유효한 현재
User
입니다. 로그인한 사용자가 없거나 사용자가 만료된 경우null
.
-
switchUser
public 사용자 switchUser(사용자 사용자)
현재 사용자를 전환합니다.현재 사용자는
currentUser()
에서 반환된 사용자입니다.- 매개변수:
user
- 새로운 현재 사용자.- 예외 처리:
IllegalArgumentException
- 사용자가User.State.LOGGED_IN
이 아닌 경우
-
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
- 루퍼 스레드에서 호출되지 않은 경우.
-
getEmailPassword
공개 EmailPasswordAuth getEmailPassword()
Credentials.Provider.EMAIL_PASSWORD
ID 제공자를 사용하여 생성되거나 로그인되는 사용자와 관련된 기능과 상호 작용하기 위한 래퍼를 반환합니다.- 반환합니다:
Credentials.Provider.EMAIL_PASSWORD
ID 제공자와 상호 작용하기 위한 래퍼입니다.
-
addAuthenticationListener
public void addAuthenticationListener(AuthenticationListener listener)
로그인 및 로그아웃과 같은 사용자 이벤트에 대해 알림을 받을 글로벌 인증 리스너를 설정합니다.인증 수신기에 대한 콜백은 UI 스레드에서 발생합니다.
- 매개변수:
listener
- 리스너를 등록합니다.- 예외 처리:
IllegalArgumentException
-listener
이null
인 경우.
-
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 boolean equals(객체 o)
두 앱은 동일한 것으로 간주되며 동일한AppConfiguration.getAppId()
을 참조하는 경우 기본 상태를 공유합니다.
-
-