Docs 菜单

Docs 主页开发应用程序Atlas Device SDKs

连接 Atlas App Services APP - React Native SDK

在此页面上

  • 开始之前
  • 配置应用程序客户端
  • 检索应用程序客户端的实例
  • 检索应用程序提供商外部的应用程序
  • 加密应用元数据

应用客户端是与 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 , baseUrl中的AppConfiguration不会被缓存。这意味着您可以更改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>");

您可以对 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>
);
};
← App Services - React Native SDK