命名空间 Realms.Sync
类
ApiKey
表示User的 API 密钥的类。 它可用于在登录时代表用户,而不是其常规凭证。 这些密钥是通过ApiKeys创建或获取的。
API 密钥的值仅在创建密钥时可用,创建后无法获取。 这意味着调用者有责任在创建 API 密钥时安全地存储该密钥的值。
应用
应用是与 Atlas App Services 应用程序交互的主要客户端入口点。
该应用程序可用于:
- 通过身份验证提供者(例如 ApiKeys 、 EmailPasswordAuth )。
- 使用 Synchronized Realm(使用SyncConfigurationBase )在本地设备和远程 Realm 应用之间同步数据。
- 通过 Functions 调用 Realm App 函数(使用Functions )。
- 使用 MongoClient 访问 MongoDB 数据库中的远程数据(使用GetMongoClient (string) )。
要创建与远程 Realm 应用链接的应用,请初始化 Realm 并配置应用,如下所示:
var appConfig = new AppConfiguration("my-realm-app-id");
var app = new App(appConfig);
配置应用后,您可以开始管理用户、配置同步 Realm、调用远程 Realm 函数以及通过 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
公开App配置选项的类。
凭证
一个类,表示用于对User进行身份验证的凭证。
FlexibleSyncConfiguration
FlexibleSyncConfiguration用于设置Realm ,其数据可以使用 Atlas Device Sync 在设备之间同步。 与PartitionSyncConfiguration不同,使用FlexibleSyncConfiguration打开的 Realm 最初为空,直到通过Subscriptions添加一个或多个订阅。
MongoClient
远程 MongoClient 用于通过 Realm 远程处理 MongoDB 中的数据。
MongoClient.Collection<TDocument>
一个表示远程 MongoDB collection 的对象。
MongoClient.Database
代表远程 MongoDB database 的对象。
MongoClient.DeleteResult
MongoClient.InsertManyResult
MongoClient.InsertResult
MongoClient.UpdateResult
UpdateOneAsync(对象?, 对象, bool)或UpdateManyAsync(对象?, 对象, bool)操作的结果。
PartitionSyncConfiguration
PartitionSyncConfiguration用于设置可在使用 Atlas Device Sync 的设备之间进行同步的Realm 。
ReconnectBackoffOptions
用于配置同步客户端使用的重新连接延迟的选项。
会话
封装同步会话的对象。 会话表示客户端(以及磁盘上的本地 Realm 文件)与 MongoDB Atlas 之间的通信。 会话始终由 SDK 创建并通过各种 API 发出。 与 Realm 关联的会话的生命周期是自动管理的。
订阅
表示单个查询订阅的类。 服务器将持续评估应用订阅的查询,发送与其匹配的数据,并删除不再匹配的数据。
SubscriptionOptions
为Add<T>(IQueryable<T>, SubscriptionOptions?)提供各种选项的类。 此类中的所有属性都是可选的。
SubscriptionSet
表示Realm实例的活动订阅集的集合。 它与FlexibleSyncConfiguration结合使用,声明要与服务器同步的查询集。 您可以自由访问和读取订阅集,但必须在更新(操作)区块中对其进行更改。
SyncConfigurationBase
SyncConfigurationBase用于设置Realm ,该 Realm 可以使用 Atlas Device Sync 在设备之间进行同步。 有两种同步模式及其各自的配置 - 使用PartitionSyncConfiguration的“分区”同步允许您将数据分割为单独的分区并将整个分区与整个 Realm 同步;使用FlexibleSyncConfiguration的“灵活”同步允许您从空 Realm 开始,并向服务器发送一组查询,服务器运行这些查询并使用所有匹配它们的文档填充 Realm。
SyncTimeoutOptions
用于配置同步客户端使用的超时和时间间隔的选项。
user
该类表示 Atlas App Services 应用程序中的用户。 凭证由各种第三方提供商(Facebook、Google 等)提供。 用户可以登录服务器,如果授予访问权限,则可以同步本地和远程 Realm。 此外,当用户注销时,同步也会停止。 可以保留用户。 检索用户后,无需再次登录第 3 方提供商。 在会话之间保留用户时,用户的档案会本地存储在设备上,并且应被视为敏感数据。
User.ApiKeyClient
User.FunctionsClient
一个公开用于调用远程 Atlas Function 的功能的类。
UserIdentity
包含与用户关联的身份信息的类。
UserProfile
包含有关User的个人资料信息的类。
结构体
App.EmailPasswordClient
一个类,封装使用EmailPassword提供商登录的用户的功能。它的作用域始终限于特定应用,并且只能通过EmailPasswordAuth访问。
App.SyncClient
同步经理,负责处理本地 Realm 与 MongoDB Atlas 的同步。它的作用域始终限于特定应用,并且只能通过Sync访问。
SyncProgress
包含给定时刻的进度状态信息的结构体。
Enums
ConnectionState
同步会话对象的当前连接状态。
Credentials.AuthProvider
包含可能的身份验证提供者的枚举。在使用这些功能之前,必须为您的应用手动启用这些功能。
GoogleCredentialType
Google 档案的类型。
MetadataPersistenceMode
枚举,用于指定如何以及是否在应用程序启动后保留已登录的User对象。
ProgressDirection
给定进度通知订阅跟踪的传输方向(上传或下载)。
ProgressMode
进度通知订阅的所需行为。
SessionState
同步会话对象的当前状态。
订阅设置状态
表示 Realm 订阅集状态的枚举。
UserState
用户对象的状态。
WaitForSyncMode
控制query.SubscribeAsync在返回之前何时等待同步的枚举。
委托
FlexibleSyncConfiguration.InitialSubscriptionsDelegate
首次打开 Flexible Sync Realm 时调用的委托。
SyncConfigurationBase.SessionErrorCallback
会话中发生错误时触发的回调。