类应用
应用是与 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();
命名空间: Realm 。 Sync
程序集:Realm.dll
语法
public class App
属性
| 编辑本页 查看源代码allUsers
获取所有当前登录的用户。
声明
public User[] AllUsers { get; }
属性值
类型 | 说明 |
---|---|
用户[] | 有效登录用户的数组。 |
BaseFilePath
获取根文件夹,此应用程序的所有本地数据都将相对于此文件夹进行存储。 这些数据包括用户和同步 Realm 的元数据。
声明
public string BaseFilePath { get; }
属性值
类型 | 说明 |
---|---|
字符串 | 应用的基本路径。 |
另请参阅
| 编辑本页 查看源代码BaseUri
获取此 Realm 应用程序的基本 url。
声明
public Uri BaseUri { get; }
属性值
类型 | 说明 |
---|---|
Uri | 应用的基本 URL。 |
另请参阅
| 编辑本页 查看源代码CurrentUser
获取当前用户。 如果不存在,则返回 null。
声明
public User? CurrentUser { get; }
属性值
类型 | 说明 |
---|---|
user | 有效用户或 |
EmailPasswordAuth
获取一个App.EmailPasswordClient实例,该实例公开与使用EmailPassword提供商创建或登录的用户相关的功能。
声明
public App.EmailPasswordClient EmailPasswordAuth { get; }
属性值
类型 | 说明 |
---|---|
App . EmailPasswordClient | 范围为此 App 的 App.EmailPasswordClient 实例。 |
id
获取标识 Realm 应用程序的唯一应用程序 ID。
声明
public string Id { get; }
属性值
类型 | 说明 |
---|---|
字符串 | Atlas App Services 应用的 ID。 |
同步
获取一个App.SyncClient实例,该实例公开用于与此App的同步客户端进行交互的 API。
声明
public App.SyncClient Sync { get; }
属性值
类型 | 说明 |
---|---|
App . SyncClient | 范围为此 App 的 App.SyncClient 实例。 |
方法
| 编辑本页 查看源代码创建 (AppConfiguration)
用于使用特定AppConfiguration创建应用的工厂方法。
声明
public static App Create(AppConfiguration config)
参数
类型 | 名称 | 说明 |
---|---|---|
AppConfiguration | config | AppConfiguration ,用于指定应用行为的关键参数。 |
返回:
类型 | 说明 |
---|---|
应用 | 应用实例现在可用于登录用户、调用函数或打开同步的 Realm。 |
Create(string)
用于创建具有特定应用程序 ID 的应用的工厂方法。
声明
public static App Create(string appId)
参数
类型 | 名称 | 说明 |
---|---|---|
字符串 | appId | Atlas App Services 应用程序的应用程序 ID。 |
返回:
类型 | 说明 |
---|---|
应用 | 应用实例现在可用于登录用户、调用函数或打开同步的 Realm。 |
备注
这是一种便捷方法,可使用默认参数和提供的appId
创建AppConfiguration并调用Create(AppConfiguration) 。
DeleteUserFromServerAsync(User)
从服务器中删除用户。 用户及其本地数据也会从设备中删除。 如果用户已登录,他们将在此过程中注销。
声明
public Task DeleteUserFromServerAsync(User user)
参数
类型 | 名称 | 说明 |
---|---|---|
user | user | 要从服务器中删除的用户。 |
返回:
类型 | 说明 |
---|---|
任务 | 表示异步删除操作的可等待任务。 成功完成表示用户已被删除、注销,其本地数据已被删除。 |
LogInAsync(Credentials)
以使用与身份验证提供者关联的给定档案的用户身份登录。
声明
public Task<User> LogInAsync(Credentials credentials)
参数
类型 | 名称 | 说明 |
---|---|---|
凭证 | 凭证 | 代表登录类型的凭证。 |
返回:
类型 | 说明 |
---|---|
任务<用户> | 表示异步登录操作的可等待Task<TResult> 。 |
备注
最后登录的用户将保存为CurrentUser 。 如果已经存在当前用户,则该用户仍处于登录状态,并且可以在AllUsers返回的列表中找到。 还可以使用SwitchUser(User)在被视为当前用户的用户之间进行切换。
RemoveUserAsync(User)
从设备中删除用户及其本地数据。 如果用户已登录,他们将在此过程中注销。
声明
public Task RemoveUserAsync(User user)
参数
类型 | 名称 | 说明 |
---|---|---|
user | user | 要注销和删除的用户。 |
返回:
类型 | 说明 |
---|---|
任务 | 表示异步 RemoveUser 操作的可等待任务。 成功完成表示用户已注销,其本地数据已删除,并在服务器上撤销了用户的RefreshToken 。 |
备注
这是客户端操作,不会删除服务器上存储的该用户的任何数据。
SwitchUser(User)
将CurrentUser切换为user
中指定的用户。
声明
public void SwitchUser(User user)
参数
类型 | 名称 | 说明 |
---|---|---|
user | user | 新的当前用户。 |
UpdateBaseUriAsync(Uri?)
声明
public Task UpdateBaseUriAsync(Uri? newUri)
参数
类型 | 名称 | 说明 |
---|---|---|
Uri | newUri | 将用于与服务器通信的新 uri。 如果设立为 |
返回:
类型 | 说明 |
---|---|
任务 | 表示异步操作的可等待任务。 |
备注
重新启动时,应用将恢复使用 [AppConfiguration] 中的值。
必须在手动停止同步会话后且可访问位于newUri
的服务器时调用此 API。 更新基本 uri 后,应恢复同步会话,并且用户需要重新进行身份验证。
此 API 是实验性的,可能会在不增加主要版本的情况下进行更改。
操作符
| 编辑本页 查看源代码操作符 ==(App?, App?)
确定两个App实例是否相等。
声明
public static bool operator ==(App? app1, App? app2)
参数
类型 | 名称 | 说明 |
---|---|---|
应用 | app1 | 第一个进行比较的应用。 |
应用 | app2 | 要比较的第二个应用。 |
返回:
类型 | 说明 |
---|---|
bool |
|
操作符 !=(App?, App?)
确定两个应用实例是否不同。
声明
public static bool operator !=(App? app1, App? app2)
参数
类型 | 名称 | 说明 |
---|---|---|
应用 | app1 | 第一个进行比较的应用。 |
应用 | app2 | 要比较的第二个应用。 |
返回:
类型 | 说明 |
---|---|
bool |
|