네임스페이스 Realms.Sync
클래스
ApiKey
User 에 대한 API 키를 나타내는 클래스입니다. 일반 자격 증명 대신 로그인할 때 사용자를 나타내는 데 사용할 수 있습니다. 이러한 키는 ApiKeys 를 통해 생성되거나 가져옵니다.
API 키의 값 은 키가 생성될 때만 사용할 수 있으며 그 후에는 얻을 수 없습니다. 즉, 생성 시 API 키의 값을 안전하게 저장하는 것은 호출자의 책임이라는 의미입니다.
앱
앱 은 Atlas App Services 애플리케이션과 상호 작용하기 위한 주요 클라이언트 사이드 진입점입니다.
앱으로 다음을 수행할 수 있습니다.
- 인증 제공자를 통해 사용을 등록하고 다양한 사용자 관련 작업을 수행합니다(예: ApiKeys, EmailPasswordAuth).
- 동기화된 Realm을 사용하여 로컬 장치와 원격 Realm 앱 간의 데이터를 동기화합니다( SyncConfigurationBase 사용).
- Functions로 Realm 앱 함수를 호출합니다( Functions 사용).
- MongoClient를 사용하여 MongoDB database에서 원격 데이터에 액세스합니다( GetMongoClient (string) 사용).
원격 Realm 앱과 연결된 앱을 만들려면 Realm을 초기화하고 아래와 같이 앱을 구성합니다.
var appConfig = new AppConfiguration("my-realm-app-id");
var app = new App(appConfig);
앱을 구성한 후 사용자 관리를 시작하고, 동기화된 Realm을 구성하고, 원격 Realm Functions를 호출하고, mongo collection을 통해 원격 데이터에 액세스할 수 있습니다.
새 사용자를 등록하거나 기존 사용자로 로그인하려면 아래와 같이 하세요:
await app.EmailPassword.RegisterUserAsync("foo@bar.com", "password");
// Login with existing user
var user = app.LoginAsync(Credentials.EmailPassword("foo@bar.com", "password");
권한이 부여된 사용자를 통해 아래와 같이 SyncConfigurationBase 로 Realm을 열어 로컬 장치와 원격 Realm 앱 간에 데이터를 동기화할 수 있습니다.
var syncConfig = new PartitionSyncConfiguration("some-partition-value", user);
using var realm = await Realm.GetInstanceAsync(syncConfig);
realm.Write(() =>
{
realm.Add(...);
});
await realm.GetSession().WaitForUploadAsync();
아래와 같이 원격 Realm 함수를 호출할 수 있습니다.
var result = await user.Functions.CallAsync<int>("sum", 1, 2, 3, 4, 5);
그리고 다음과 같이 원격 Realm 앱에서 collection에 액세스합니다.
var client = user.GetMongoClient("atlas-service");
var db = client.GetDatabase("my-db");
var collection = db.GetCollection("foos");
var foosCount = await collection.CountAsync();
AppConfiguration
앱 의 구성 옵션을 노출하는 클래스입니다.
자격 증명
User 인증에 사용되는 자격 증명을 나타내는 클래스입니다.
FlexibleSyncConfiguration
A FlexibleSyncConfiguration is used to setup a Realm whose data can be synchronized between devices using Atlas Device Sync. PartitionSyncConfiguration 과 달리 FlexibleSyncConfiguration 으로 열린 Realm은 구독을 통해 하나 이상의 구독 이 추가될 때까지 처음에는 비어 있습니다.
몽고클라이언트
Realm을 통해 원격으로 MongoDB의 데이터를 작업하는 데 사용되는 원격 MongoClient입니다.
MongoClient.Collection<TDocument>
원격 MongoDB collection을 나타내는 객체입니다.
MongoClient.Database
원격 MongoDB 데이터베이스를 나타내는 객체입니다.
MongoClient.DeleteResult
DeleteOneAsync(객체?) 또는 DeleteManyAsync(객체?) 작업의 결과입니다.
MongoClient.InsertManyResult
InsertManyAsync(IEnumerable<TDocument>) 작업의 결과입니다.
MongoClient.InsertResult
InsertOneAsync(TDocument) 작업의 결과입니다.
MongoClient.UpdateResult
UpdateOneAsync(객체?, 객체, bool) 또는 UpdateManyAsync(객체?, 객체, bool) 작업의 결과입니다.
PartitionSyncConfiguration
PartitionSyncConfiguration 은 Atlas Device Sync를 사용하여 장치 간에 동기화할 수 있는 Realm 을 설정하는 데 사용됩니다.
ReconnectBackoffOptions
동기화 클라이언트 에서 사용하는 재연결 지연을 구성하기 위한 옵션입니다.
Session
동기화 세션을 캡슐화하는 객체입니다. 세션은 클라이언트(및 디스크의 로컬 Realm 파일)와 MongoDB Atlas 간의 통신을 나타냅니다. 세션은 항상 SDK에 의해 생성되고 다양한 API를 통해 판매됩니다. Realm과 연결된 세션의 수명은 managed 자동으로 됩니다.
서브스크립션
단일 쿼리 구독을 나타내는 클래스입니다. 서버는 앱이 구독한 쿼리 를 지속적으로 평가하여 일치하는 데이터를 전송하고 더 이상 구독하지 않는 데이터를 제거합니다.
SubscriptionOptions
Add<T>(IQueryable<T>, SubscriptionOptions?) 에 다양한 옵션을 제공하는 클래스입니다. 이 클래스의 모든 속성은 선택 사항입니다.
SubscriptionSet
Realm 인스턴스의 활성 구독 세트를 나타내는 컬렉션입니다. 이는 FlexibleSyncConfiguration 과 함께 서버와 동기화하려는 쿼리 세트를 선언하는 데 사용됩니다. 구독 세트에 자유롭게 액세스하고 읽을 수 있지만 변경은 Update(조치) 블록에서 이루어져야 합니다.
SyncConfigurationBase
SyncConfigurationBase 는 Atlas Device Sync를 사용하여 기기 간에 동기화할 수 있는 Realm 을 설정하는 데 사용됩니다. 각각 구성이 있는 두 가지 동기화 모드가 있습니다. PartitionSyncConfiguration 을 사용한 '파티션' 동기화를 사용하면 데이터를 별도의 파티션으로 분할하고 전체 파티션을 전체 Realm과 동기화할 수 있습니다. FlexibleSyncConfiguration 을 통한 '유연한' 동기화를 사용하면 빈 Realm으로 시작하고 서버에 실행할 쿼리 세트를 전송하고 일치하는 모든 문서로 Realm을 채울 수 있습니다.
SyncTimeoutOptions
동기화 클라이언트에서 사용하는 시간 초과 및 간격을 구성하기 위한 옵션입니다.
사용자
이 클래스는 Atlas App Services 애플리케이션의 사용자를 나타냅니다. 자격 증명은 다양한 타사 제공자(Facebook, Google 등)에서 제공합니다. 사용자는 서버에 로그인할 수 있으며 액세스 권한이 부여되면 로컬 Realm과 원격 Realm을 동기화할 수 있습니다. 또한 사용자가 로그아웃하면 동기화가 중지됩니다. 사용자를 유지할 수 있습니다. 사용자를 검색하면 타사 제공업체에 다시 로그인할 필요가 없습니다. 세션 사이에 사용자를 유지하면 사용자의 자격 증명이 디바이스에 로컬로 저장되며 민감한 데이터로 처리되어야 합니다.
User.ApiKeyClient
사용자가 클라이언트에서 API 키를 managed 수 있는 기능을 노출하는 클래스입니다. 항상 특정 사용자 로 범위가 지정되며 ApiKeys 를 통해서만 액세스할 수 있습니다.
User.FunctionsClient
원격 Atlas Function을 호출하기 위한 기능을 노출하는 클래스입니다.
UserIdentity
사용자와 연결된 ID에 대한 정보가 포함된 클래스입니다.
사용자 프로필
User 에 대한 프로필 정보가 포함된 클래스입니다.
구조체
App.EmailPasswordClient
EmailPassword 제공자로 로그인한 사용자를 위한 기능을 캡슐화하는 클래스입니다. 항상 특정 앱으로 범위가 지정되며 EmailPasswordAuth 를 통해서만 액세스할 수 있습니다.
App.SyncClient
로컬 Realm과 MongoDB Atlas의 동기화를 처리하는 동기화 관리자입니다. 항상 특정 앱으로 범위가 지정되며 Sync 를 통해서만 액세스할 수 있습니다.
SyncProgress
주어진 순간의 진행 상태에 대한 정보가 포함된 구조체입니다.
Enums
ConnectionState
동기화 세션 객체의 현재 연결 상태입니다.
Credentials.AuthProvider
가능한 인증 제공자가 포함된 열거형입니다. 이러한 기능을 사용하려면 먼저 앱에서 수동으로 활성화해야 합니다.
GoogleCredentialType
Google 자격 증명의 유형입니다.
메타데이터 지속성 모드
로그인한 사용자 객체가 애플리케이션이 실행되는 동안 유지되는 방식과 여부를 지정하는 열거형입니다.
ProgressDirection
지정된 진행률 알림 구독에서 추적하는 전송 방향(업로드 또는 다운로드)입니다.
ProgressMode
진행 알림 구독의 원하는 동작입니다.
SessionState
동기화 세션 객체의 현재 상태입니다.
구독 세트 상태
Realm의 구독 세트 상태를 나타내는 열거형입니다.
UserState
사용자 객체의 상태입니다.
동기화 모드 대기
query.SubscribeAsync 가 반환 전에 동기화를 기다리는 시기를 제어하는 열거형입니다.
위임
FlexibleSyncConfiguration.InitialSubscriptionsDelegate
flexible sync Realm이 처음 열릴 때 호출되는 위임입니다.
SyncConfigurationBase.SessionErrorCallback
세션에서 오류가 발생할 때 트리거되는 콜백입니다.