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

连接 Atlas App Services APP - React Native SDK

在此页面上

  • 开始之前
  • 配置应用程序客户端
  • 检索应用程序客户端的实例
  • 检索应用程序提供商外部的应用程序
  • 加密应用元数据
  • 连接到特定MongoDB Server
  • 在运行时连接到不同的MongoDB Server

应用客户端是与 App Services 后端的接口。 它提供对身份验证Realm 函数Atlas Device Sync 的访问。

  1. 创建 App Services App

  2. 获取应用程序 ID

要设置 App 客户端,请将应用程序 ID 字符串传递给idAppProvider 属性。使用AppProvider封装需要访问应用的任何组件。 在此示例中,我们将UserProvider包装在AppProvider中以对用户进行身份验证。

import React from 'react';
import {AppProvider, UserProvider} from '@realm/react';
export const AppWithAuthHook = () => {
return (
<View>
<AppProvider id={APP_ID}>
<UserProvider fallback={LogIn}>
<MyApp />
</UserProvider>
</AppProvider>
</View>
);
};

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

重要

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

在版本realm@12.6.0中进行了更改:不缓存baseUrl

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

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

包装在AppProvider中的所有组件都可以使用useApp()钩子访问权限应用程序客户端。

import React from 'react';
import {useApp} from '@realm/react';
function MyApp() {
const app = useApp();
// Proceed to app logic...
}

要从应用程序中的任何位置检索 App Client 实例,请从realm包中实例化Realm.App()的新实例,然后传入App ID

import Realm from 'realm';
const app = Realm.App.getApp("<Your App ID>");

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

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

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

    import React from 'react';
    import {Text, View} from 'react-native';
    import {MetadataMode} from 'realm';
    import {AppProvider} from '@realm/react';
  2. 创建包含metadata属性的应用配置对象。

  3. metadata.mode 设置为 MetadataMode.Encryption

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

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

const EncryptMetadata = ({
encryptionKey,
}: {
encryptionKey: ArrayBuffer;
}) => {
const metadataConfig = {
mode: MetadataMode.Encryption,
encryptionKey: encryptionKey,
};
return (
<AppProvider
id={APP_ID}
metadata={metadataConfig}>
<RestOfApp />
</AppProvider>
);
};

默认情况下,Atlas Device SDK 使用https://services.cloud.mongodb.com的全局baseURL连接到 Atlas。 在某些情况下,您可能想要连接到不同的服务器:

  • 您的 App Services App 使用本地部署,并且您希望直接连接到您所在区域的本地baseURL

您可以指定baseURL作为AppProvider的属性。 所有AppConfiguration键都可以作为属性传递给AppProvider

在版本 realm@12.8.0 中进行了更改

在某些情况下,您可能希望在应用运行时更改baseURL

目前,此功能作为实验性模块实现,需要特定的Typescript配置。 所需的配置可能很难与 React Native 应用程序一起使用。 有关实施的更多信息,请参阅Node.js SDK 的文档。

后退

Atlas App Services