Atlas App Services 백엔드에 연결 - Node.js SDK
앱 클라이언트는 Atlas App Services 백엔드에 대한 인터페이스입니다. 인증 기능 및 동기화 관리에 액세스할 수 있습니다.
시작하기 전에
앱 클라이언트에 액세스
클라이언트 에서 App Services 백엔드 에 연결하려면 구성 객체 를 만들어야 합니다. 그런 다음 해당 구성 객체 를 Realm.App()
인스턴스 에 전달합니다.
App Services UI 에서 찾을수 있는 App Services App 의 id
필드 와 App ID 를 포함해야 합니다.
// Initialize your App. const app = new Realm.App({ id: "<yourAppId>", });
여러 앱 클라이언트 인스턴스를 만들어 여러 앱에 연결할 수 있습니다. 동일한 앱 ID 를 주식 하는 모든 앱 클라이언트 인스턴스는 동일한 기본 연결을 사용합니다.
중요
앱 초기화 후 앱 구성 변경하기
버전 12.6.0에서 변경됨: baseUrl
은(는) 앱 구성에 캐시되지 않습니다.
앱 클라이언트 를 초기화하면 구성이 내부적으로 캐시됩니다. 동일한 프로세스 내에서 구성이 변경된 앱을 닫았다가 다시 열려고해도 아무런 효과가 없습니다. 클라이언트 는 캐시된 구성을 계속 사용합니다.
Node.js SDK 버전 12.6.0 부터는 의 이 baseUrl
AppConfiguration
캐시 되지 않습니다 . 즉, baseUrl
을 변경할 수 있으며 앱 클라이언트는 업데이트된 구성을 사용합니다. 이전 SDK 버전에서는 캐시된 앱 구성의 baseUrl
변경 사항이 적용되지 않았습니다.
앱 클라이언트의 인스턴스 조회
애플리케이션의 어느 곳에서나 앱 클라이언트의 인스턴스를 조회하려면 Realm.App.getApp() 을 호출하고 App ID 를 전달합니다.
const app = Realm.App.getApp("<yourAppId>");
앱 클라이언트에 대한 시간 초과 구성
AppConfiguration 에서 요청에 대한 선택적 timeout
를 구성할 수 있습니다. 요청 이 시간 초과되기 전에 밀리초 단위로 허용합니다.
이 시간 초과 간격은 선택 사항인 동기화 구성 cancelWaitsOnNonFatalErrors
부울과 함께 사용할 수 있습니다. 제한 시간 간격이 경과하면 업로드 및 다운로드를 기다리고 있는 미해결 작업이 모두 취소됩니다. 이 설정이 false이면 Realm이 이러한 시간 초과를 치명적이지 않은 오류로 처리하므로 업로드 및 다운로드 대기가 취소되지 않습니다.
예제 는 시간 초과 후 비동기 작업 취소를 참조하세요.
const app = new Realm.App({ id: APP_ID, // You can optionally specify a timeout in milliseconds timeout: 10000, });
앱 메타데이터 암호화
Atlas App Services가 클라이언트 기기에 저장하는 메타데이터를 암호화할 수 있습니다. MetadataMode 열거형 값을 사용하여 암호화 동작을 결정합니다.
앱 메타데이터를 암호화하려면 다음을 수행합니다.
MetadataMode
Realm
에서 를 가져오고 다른 종속성을 가져옵니다:import Realm, { BSON, MetadataMode } from "realm"; import Realm, { AppConfiguration, BSON, MetadataMode, Configuration, } from "realm"; metadata
속성을 포함하는 앱 구성 객체를 만듭니다.metadata.mode
을MetadataMode.Encryption
로 설정합니다.암호화에 사용할 키로
metadata.encryptionKey
를 설정합니다.앱 구성 객체를
new Realm.App()
에 전달합니다.
// Retrieve encryption key from secure location or create one const encryptionKey = new ArrayBuffer(64); // Use encryption key in app configuration const config = { id: APP_ID, metadata: { mode: MetadataMode.Encryption, encryptionKey: encryptionKey }, }; const app = new Realm.App(config);
// Retrieve encryption key from secure location or create one const encryptionKey = new ArrayBuffer(64); // Use encryption key in app configuration const config: AppConfiguration = { id: APP_ID, metadata: { mode: MetadataMode.Encryption, encryptionKey: encryptionKey }, }; const app = new Realm.App(config);