Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ /

连接到 Atlas App Services 后端 - Node.js SDK

在此页面上

  • 开始之前
  • 访问应用程序客户端
  • 检索应用程序客户端的实例
  • 为 App Client 配置超时
  • 加密应用元数据

App 客户端是与 Atlas App Services 后端的接口。 它提供对身份验证功能同步管理的访问。

  1. 创建 App Services App

  2. 安装 Realm Node.js SDK

要从客户端连接到App Services后端,您需要创建一个配置对象。 然后,将该配置对象传递给 Realm.App()实例。

您必须包含App Services App的id字段和 App ID ,您可以在App Services用户界面中找到它们。

// Initialize your App.
const app = new Realm.App({
id: "<yourAppId>",
});

您可以创建多个应用客户端实例以连接多个应用。 股票相同 App ID的所有 App客户端实例使用相同的根本的连接。

重要

初始化应用后更改应用配置

在版本12.6.0中进行了更改baseUrl未缓存在应用配置中。

初始化 App客户端时,会在内部缓存配置。 尝试在同一进程中关闭并重新打开配置已更改的应用无效。 客户端继续使用缓存的配置。

从 Node.js SDK 版本12.6.0开始,不会缓存AppConfiguration中的baseUrl 。 这意味着您可以更改baseUrl ,应用客户端将使用更新后的配置。 在早期 SDK 版本中,对缓存的应用配置中的baseUrl进行更改无效。

要从应用程序中的任何位置检索 App Client 实例,请调用Realm.App.getApp()并传入您的App ID

const app = Realm.App.getApp("<yourAppId>");

您可以在AppConfiguration中为请求配置可选的timeout 。 它接受请求超时前的毫秒数。

您可以将此超时间隔与可选的同步配置cancelWaitsOnNonFatalErrors布尔值一起使用。 超时间隔过后,等待上传和下载的所有未完成工作都将取消。 当此设置为 false 时,等待上传和下载不会取消,因为 Realm 将这些超时视为非致命错误。

有关示例,请参阅超时后取消异步操作。

const app = new Realm.App({
id: APP_ID,
// You can optionally specify a timeout in milliseconds
timeout: 10000,
});

您可以对Atlas App Services在客户端设备上存储的元数据进行加密。 使用MetadataMode 枚举的值来确定加密行为。

要加密应用元数据,请执行以下操作:

  1. Realm导入MetadataMode并导入其他依赖项:

    import Realm, { BSON, MetadataMode } from "realm";
    import Realm, {
    AppConfiguration,
    BSON,
    MetadataMode,
    Configuration,
    } from "realm";
  2. 创建包含metadata属性的应用配置对象。

  3. metadata.mode 设置为 MetadataMode.Encryption

  4. metadata.encryptionKey设置为要用于加密的密钥。

  5. 将应用配置对象传递给new Realm.App()

// Retrieve encryption key from secure location or create one
const encryptionKey = new ArrayBuffer(64);
// Use encryption key in app configuration
const config = {
id: APP_ID,
metadata: { mode: MetadataMode.Encryption, encryptionKey: encryptionKey },
};
const app = new Realm.App(config);
// Retrieve encryption key from secure location or create one
const encryptionKey = new ArrayBuffer(64);
// Use encryption key in app configuration
const config: AppConfiguration = {
id: APP_ID,
metadata: { mode: MetadataMode.Encryption, encryptionKey: encryptionKey },
};
const app = new Realm.App(config);

后退

Atlas App Services