Atlas App Services 앱에 연결 - React Native SDK
이 페이지의 내용
앱 클라이언트는 App Services 백 엔드에 대한 인터페이스입니다. 이를 통해 인증 기능, Atlas Functions 및 Atlas Device Sync에 액세스할 수 있습니다.
시작하기 전에
앱 클라이언트 구성
앱 클라이언트를 설정하려면 AppProvider
의 id
프롭에 앱 ID 문자열을 전달합니다. AppProvider
을(를) 사용하여 앱에 액세스해야 하는 모든 구성 요소를 래핑합니다. 이 예시에서는 사용자를 인증하기 위해 AppProvider
에 UserProvider 를 래핑합니다.
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 열거형 값을 사용하여 암호화 동작을 결정합니다.
앱 메타데이터를 암호화하려면 다음을 수행합니다.
MetadataMode
Realm
에서 를 가져오고 다른 종속성을 가져옵니다:import React from 'react'; import {Text, View} from 'react-native'; import {MetadataMode} from 'realm'; import {AppProvider} from '@realm/react'; metadata
속성을 포함하는 앱 구성 객체를 만듭니다.metadata.mode
을MetadataMode.Encryption
로 설정합니다.암호화에 사용할 키로
metadata.encryptionKey
를 설정합니다.앱 구성 객체를
new Realm.App()
에 전달합니다.
const EncryptMetadata = ({ encryptionKey, }: { encryptionKey: ArrayBuffer; }) => { const metadataConfig = { mode: MetadataMode.Encryption, encryptionKey: encryptionKey, }; return ( <AppProvider id={APP_ID} metadata={metadataConfig}> <RestOfApp /> </AppProvider> ); };
특정 MongoDB 서버에 연결
기본적으로 Atlas Device SDK는 https://services.cloud.mongodb.com
의 글로벌 baseURL
를 사용하여 Atlas에 연결합니다. 경우에 따라 다른 서버에 연결해야 할 수도 있습니다.
App Services App이 로컬 배포 를 사용하며 해당 리전의 로컬
baseURL
에 직접 연결하려고 합니다.
AppProvider 의 프롭으로 baseURL
를 지정할 수 있습니다. 모든 AppConfiguration 키를 AppProvider
에 프롭으로 전달할 수 있습니다.
런타임 중 다른 MongoDB 서버에 연결
realm@12.8.0
버전에서 변경됨
경우에 따라 앱 이 실행 동안 baseURL
을(를) 변경해야 할 수도 있습니다.
현재 이 기능은 특정 Typescript 구성이 필요한 실험적 모듈로 구현되어 있습니다. 필요한 구성은 React Native 앱에서 작동하기 어려울 수 있습니다. 구현에 대한 자세한 내용 은 Node.js SDK 설명서를 참조하세요.