Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

Atlas App Services 앱에 연결 - React Native SDK

이 페이지의 내용

  • 시작하기 전에
  • 앱 클라이언트 구성
  • 앱 클라이언트의 인스턴스 조회
  • 앱 제공자 외부에서 앱 조회
  • 앱 메타데이터 암호화
  • 특정 MongoDB 서버에 연결
  • 런타임 중 다른 MongoDB 서버에 연결

앱 클라이언트는 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>");

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

기본적으로 Atlas Device SDK는 https://services.cloud.mongodb.com 의 글로벌 baseURL 를 사용하여 Atlas에 연결합니다. 경우에 따라 다른 서버에 연결해야 할 수도 있습니다.

  • App Services App이 로컬 배포 를 사용하며 해당 리전의 로컬 baseURL 에 직접 연결하려고 합니다.

AppProvider 의 프롭으로 baseURL 를 지정할 수 있습니다. 모든 AppConfiguration 키를 AppProvider 에 프롭으로 전달할 수 있습니다.

realm@12.8.0 버전에서 변경됨

경우에 따라 앱 이 실행 동안 baseURL 을(를) 변경해야 할 수도 있습니다.

현재 이 기능은 특정 Typescript 구성이 필요한 실험적 모듈로 구현되어 있습니다. 필요한 구성은 React Native 앱에서 작동하기 어려울 수 있습니다. 구현에 대한 자세한 내용 은 Node.js SDK 설명서를 참조하세요.

돌아가기

Atlas App Services