문서 메뉴

문서 홈애플리케이션 개발Atlas Device SDK

Atlas App Services 앱에 연결 - React Native SDK

이 페이지의 내용

  • 시작하기 전에
  • 앱 클라이언트 구성
  • 앱 클라이언트의 인스턴스 조회
  • 앱 제공자 외부에서 앱 조회
  • 앱 메타데이터 암호화

앱 클라이언트는 App Services 백 엔드에 대한 인터페이스입니다. 이를 통해 인증 기능, Atlas FunctionsAtlas Device Sync에 액세스할 수 있습니다.

  1. App Services 앱 만들기

  2. 애플리케이션 ID 가져오기

앱 클라이언트를 설정하려면 AppProviderid 프롭에 앱 ID 문자열을 전달합니다. AppProvider 을(를) 사용하여 앱에 액세스해야 하는 모든 구성 요소를 래핑합니다. 이 예시에서는 사용자를 인증하기 위해 AppProviderUserProvider 를 래핑합니다.

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>
);
};

여러 앱 클라이언트 인스턴스를 만들어 여러 앱에 연결할 수 있습니다. 동일한 앱 ID를 공유하는 모든 앱 클라이언트 인스턴스는 동일한 기본 연결을 사용합니다.

중요

앱 초기화 후 앱 구성 변경하기

버전 realm@12.6.0에서 변경됨: baseUrl 이 캐시되지 않습니다.

앱 클라이언트를 초기화하면 구성이 내부적으로 캐시됩니다. 동일한 프로세스 내에서 구성을 변경하여 앱을 '닫았다'가 다시 열어도 아무런 효과가 없습니다. 클라이언트는 캐시된 구성을 계속 사용합니다.

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...
}

애플리케이션의 어느 곳에서나 앱 클라이언트의 인스턴스를 조회하려면 realm 패키지에서 Realm.App() 의 새 인스턴스를 인스턴스화한 다음 App ID 를 전달합니다.

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

App Services가 클라이언트 디바이스에 저장하는 메타데이터를 암호화할 수 있습니다. MetadataMode 열거형 값을 사용하여 암호화 동작을 결정합니다.

앱 메타데이터를 암호화하려면 다음을 수행합니다.

  1. MetadataMode Realm 에서 를 가져오고 다른 종속성을 가져옵니다:

    import React from 'react';
    import {Text, View} from 'react-native';
    import {MetadataMode} from 'realm';
    import {AppProvider} from '@realm/react';
  2. metadata 속성을 포함하는 앱 구성 객체를 만듭니다.

  3. metadata.modeMetadataMode.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