클래스 앱
이 페이지의 내용
io.realm.mongodb
앱 은 MongoDB Realm 앱 과 상호 작용하기 위한 주요 클라이언트 사이드 진입점입니다. 앱 은 다음 작업에 사용할 수 있습니다.
인증 제공자(io.realm.mongodb.auth.ApiKeyAuth , EmailPasswordAuthImpl)를 통해 용도를 등록하고 다양한 사용자 관련 작업을 수행합니다.
동기화된 Realm을 사용하여 로컬 장치와 원격 Realm 앱 간에 데이터 동기화
Functions로 Realm 앱 함수 호출
io 를 사용하여 MongoDB 데이터베이스의 원격 데이터에 액세스합니다. Realm 영역. Mongo.MongoClient
원격 Realm 앱 과 연결된 앱을 만들려면 Realm을 초기화하고 아래와 같이 앱 을 구성합니다.
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); } }
앱 을 구성한 후 사용자 관리를 시작하고, 동기화된 Realm을 구성하고, 원격 Realm 함수를 호출하고, mongo 컬렉션을 통해 원격 데이터에 액세스 . 아래 예제는 메인 스레드에서 사용할 수 없는 동기화된 API를 보여줍니다. 이에 상응하는 비동기식 문서는 https://github.com/realm / 영역-java/tree/main/examples/mongoDbRealmExample 을 참조하세요. .
새 사용자를 등록하거나 기존 사용자로 로그인하려면 아래와 같이 하세요:
// Register new user APP.getEmailPassword().registerUser(username, password); // Login with existing user User user = APP.login(Credentials.emailPassword(username, password))
권한이 부여된 사용자와 함께 아래와 같이 io.realm.mongodb.sync.SyncConfiguration 을 사용하여 Realm을 열어 로컬 장치와 원격 Realm 앱 간에 데이터를 동기화할 수 있습니다.
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();
아래와 같이 원격 Realm 함수를 호출할 수 있습니다.
Functions functions = user.getFunctions(); Integer sum = functions.callFunction("sum", Arrays.asList(1, 2, 3, 4), Integer.class);
그리고 다음과 같이 원격 Realm 앱에서 collection에 액세스합니다.
MongoClient client = user.getMongoClient(SERVICE_NAME) MongoDatabase database = client.getDatabase(DATABASE_NAME) MongoCollection<DocumentT> collection = database.getCollection(COLLECTION_NAME); Long count = collection.count().get()
생성자
생성자 및 설명 |
---|
지정된 AppConfiguration 에 따라 앱 을 만들기 위한 생성자입니다. |
중첩된 클래스 요약
수정자 및 유형 | 클래스 및 설명 |
---|---|
public static | |
public static interface |
필드 요약
수정자 및 유형 | 필드 및 설명 |
---|---|
MongoDB Realm 에 대해 네트워크 요청을 수행할 때 사용되는 스레드 풀 . 이 풀은 테스트 목적으로만 노출되며 대기열이 비어 있지 않은 상태에서 교체하면 정의되지 않은 동작이 발생합니다. |
메서드 요약
수정자 및 유형 | 메서드 및 설명 |
---|---|
public void | 로그인 및 로그아웃과 같은 사용자 이벤트에 대해 알림을 받을 글로벌 인증 리스너를 설정합니다. |
공개 지도 | allUsers () User.State.LOGGED_IN 또는 User.State.LOGGED_OUT 인 모든 알려진 사용자를 반환합니다. |
공개 사용자 | currentUser () 로그인하여 여전히 유효한 현재 사용자를 반환합니다. |
공개 부울 | 두 앱은 동일한 것으로 간주되며 둘 다 동일한 AppConfiguration.getAppId() 를 참조하는 경우 기본 상태 를 주식 합니다. |
이 앱의 구성 객체를 반환합니다. | |
Credentials.Provider.EMAIL_PASSword ID 제공자 를 사용하여 생성되거나 로그인되는 사용자와 관련된 기능과 상호 작용하기 위한 래퍼를 반환합니다. | |
공개 함수 | 인수와 결과를 인코딩 및 디코딩하기 위한 사용자 지정 코덱 레지스트리를 사용하여 Realm 앱의 Realm Functions를 호출하기 위한 함수 관리자를 반환합니다. |
공개 함수 | Realm 앱의 Realm 함수를 호출하기 위한 함수 관리자를 반환합니다. |
공개 동기화 | getSync () 이 앱 과 연결된 로컬 Realm 앱과 원격 Realm 앱 간의 데이터를 동기화하는 진행 중인 Realm 동기화 세션을 관리하는 동기화 인스턴스 반환합니다. |
public int | hashCode () |
공개 사용자 | 인증 제공자와 연결된 지정된 자격 증명을 사용하여 사용자로 로그인합니다. |
public RealmAsyncTask | 인증 제공자와 연결된 지정된 자격 증명을 사용하여 사용자로 로그인합니다. |
public void | 제공된 전역 인증 수신기를 제거합니다. |
공개 사용자 | 이 기기에서 사용자 자격 증명을 제거합니다. |
보호된 보이드 | 테스트를 위해 노출되었습니다. |
공개 사용자 | 현재 사용자를 전환합니다. |
상속된 메서드
클래스 java.lang.Object 에서 상속된 메서드 :
getClass
,hashCode
,equals
,clone
,toString
,notify
,notifyAll
,wait
,wait
,wait
,finalize
필드 세부 정보
NETWORK_POOL_EXECUTOR
MongoDB Realm 에 대해 네트워크 요청을 수행할 때 사용되는 스레드 풀 . 이 풀은 테스트 목적으로만 노출되며 대기열이 비어 있지 않은 상태에서 교체하면 정의되지 않은 동작이 발생합니다.
생성자 세부 정보
지정된 AppConfiguration 에 따라 앱 을 만들기 위한 생성자입니다. 매개변수
|
메서드 세부 정보
addAuthenticationListener
로그인 및 로그아웃과 같은 사용자 이벤트에 대해 알림을 받을 글로벌 인증 리스너를 설정합니다. 인증 리스너에 대한 콜백은 UI 스레드에서 발생합니다. 매개변수
스로우
|
allUsers
User.State.LOGGED_IN 또는 User.State.LOGGED_OUT 인 모든 알려진 사용자를 반환합니다. 특정 점에 이 장치에 로그인한 사용자만 반환됩니다. 반환 사용자 식별자와 로컬에 알려진 사용자의 맵입니다. |
currentUser
public User currentUser () |
---|
로그인되어 여전히 유효한 현재 사용자를 반환합니다. 사용자가 로그아웃하거나 사용자의 새로 고침 토큰이 만료되거나 해지되면 사용자가 무효화됩니다. 두 명 이상의 사용자가 로그인한 경우 이 메서드는 마지막으로 유효한 사용자를 반환합니다. 반환 로그인한 적이 있고 여전히 유효한 현재 사용자 입니다. 로그인한 사용자가 없거나 사용자가 만료된 경우 |
같음
getConfiguration
public AppConfiguration getConfiguration () |
---|
이 앱의 구성 객체를 반환합니다. 반환 이 앱의 구성입니다. |
getEmailPassword
public EmailPasswordAuth getEmailPassword () |
---|
Credentials.Provider.EMAIL_PASSword ID 제공자 를 사용하여 생성되거나 로그인되는 사용자와 관련된 기능과 상호 작용하기 위한 래퍼를 반환합니다. 반환 Credentials.Provider.EMAIL_PASSword ID 제공자 와 상호 작용하기 위한 래퍼입니다. |
getFunctions
인수와 결과를 인코딩 및 디코딩하기 위한 사용자 지정 코덱 레지스트리를 사용하여 Realm 앱의 Realm Functions를 호출하기 위한 함수 관리자를 반환합니다. |
Realm 앱의 Realm Functions를 호출하기 위한 함수 관리자를 반환합니다. 이 경우 앱의 기본값 코덱 레지스트리를 사용하여 인수와 결과를 인코딩하고 디코딩합니다. |
getSync
해시 코드
login
인증 제공자 와 연결된 지정된 자격 증명 을 사용하여 사용자로 로그인합니다. 로그인한 사용자가 현재 사용자가 됩니다. 다른 앱 기능은 현재 사용자를 대신하여 작동합니다. 현재 사용자가 이미 있었다면 해당 사용자는 여전히 로그인되어 있으며 allUsers() 가 반환한 목록에서 찾을 수 있습니다. switchUser(User) 를 사용하여 현재 사용자로 간주되는 사용자를 전환할 수도 있습니다. 매개변수
반환 로그인한 사용자 를 나타내는 사용자입니다. 스로우
|
loginAsync
인증 제공자 와 연결된 지정된 자격 증명 을 사용하여 사용자로 로그인합니다. 로그인한 사용자가 현재 사용자가 됩니다. 다른 앱 기능은 현재 사용자를 대신하여 작동합니다. 현재 사용자가 이미 있었다면 해당 사용자는 여전히 로그인되어 있으며 allUsers() 가 반환한 목록에서 찾을 수 있습니다. switchUser(User) 를 사용하여 현재 사용자로 간주되는 사용자를 전환할 수도 있습니다. 매개변수
스로우 |
removeAuthenticationListener
제공된 전역 인증 수신기를 제거합니다. 매개변수
|
removeUser
이 기기에서 사용자 자격 증명을 제거합니다. 사용자가 현재 로그인되어 있었다면 프로세스의 일부로 로그아웃됩니다. 이는 로컬 변경일 뿐이며 서버의 사용자 상태에는 영향을 주지 않습니다. 매개변수
반환 제거된 사용자입니다. 스로우
|
setNetworkTransport
테스트를 위해 노출됩니다. 현재 구성된 네트워크 전송을 제공된 네트워크 전송으로 바꿉니다. 이 작업은 현재 실행 네트워크 요청이 없는 경우에만 수행해야 합니다. |
switchUser
현재 사용자를 전환합니다. 현재 사용자는 currentUser() 에 의해 반환된 사용자입니다. 매개변수
스로우
|