Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

App Services에 연결 - Flutter SDK

이 페이지의 내용

  • 시작하기 전에
  • 앱 클라이언트에 액세스
  • 고급 구성
  • ID로 앱 다운로드
  • 특정 MongoDB 서버에 연결
  • 런타임 중 다른 MongoDB 서버에 연결

App 클라이언트는 Atlas App Services 백엔드에 대한 인터페이스입니다. 사용자 인증 및 Device Sync와 같은 App Services 기능에 대한 액세스를 제공합니다.

  1. App Services 앱 만들기

  2. App Services UI에서 앱 ID 찾기

버전 1.7.0에서 변경됨: 기본 격리에 App 을(를) 생성해야 합니다.

클라이언트 애플리케이션 전체에서 App Services 기능에 액세스하려면 App 인스턴스를 만듭니다. App 인스턴스는 메인 격리에서 한 번만 생성하는 것이 좋으며, 앱이 시작되는 즉시 생성하는 것이 좋습니다.

  1. App Services UI 에서 App Services App의 ID 를 가져옵니다. 방법을 학습 보려면 앱 ID 찾기를 참조하세요.

  2. AppConfiguration 생성 앱의 앱 ID 를 인수로 사용하여 객체 를 생성합니다.

  3. 앱 만들기 AppConfiguration 방금 생성한 로 변경합니다. Flutter v1 에서.7.0 이후에는 기본 격리에서 이 작업을 수행해야 하며, 그렇지 않으면 SDK에 오류가 발생합니다.

App 를 생성한 후에는 App.getById 를 사용하여 배경 격리에서 구성된 App 인스턴스 에 액세스 할 수 있습니다. 자세한 내용은 이 페이지의 ID 로 앱 다운로드 섹션을 참조하세요.

final appConfig = AppConfiguration(appId);
final app = App(appConfig);

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

중요

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

버전 1.8.0에서 변경됨: baseUrl 이(가) AppConfiguration에 캐시되지 않았습니다.

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

Flutter SDK 버전 이상에서는 1.8.0 baseUrl 이 더 이상 앱 구성에 캐시되지 않습니다. 즉, baseUrl 을 변경할 수 있으며 앱 클라이언트 는 업데이트된 구성을 사용합니다. 이전 SDK 버전에서는 캐시된 앱 구성의 baseUrl 변경 사항이 적용되지 않았습니다.

버전 1.6.0부터 지원이 중단되었습니다: App.localAppNameApp.localAppVersion 은(는) 더 이상 사용되지 않습니다.

App 클라이언트 를 보다 세분화하여 제어하기 위해 AppConfiguration 에 선택적 인수를 추가할 수 있습니다. 연결에 대한 사용자 지정 시간 제한이나 로컬 메타데이터 암호화 를 위한 키와 같은 항목을 추가할 수 있습니다. 사용 가능한 구성 옵션에 학습 보려면 AppConfiguration 참조 문서.

final appConfig = AppConfiguration(appId,
defaultRequestTimeout: const Duration(seconds: 120)
// ... see reference docs for all available configuration options
);

참고

Android 7 이상을 사용하여 연결

Realm Flutter SDK에 포함된 기본 HTTP 클라이언트는 Android 7 이전 버전에서 실행되는 앱에서는 작동하지 않습니다. 이 문제를 해결하려면 사용자 지정 HTTP 클라이언트를 AppConfiguration 에 추가해야 합니다. 자세한 내용은 Android 7 이상을 사용하여 App Services에 연결을 참조하세요.

버전 1.7.0에 새로 추가되었습니다.

기본 격리에서 인스턴스를 생성한 후에는 앱 ID를 App App.getById() 메서드 에 전달하여 백그라운드 격리에서 구성된 인스턴스에 액세스할 수 있습니다. 메서드. 그런 다음 필요에 따라 이를 사용하여 App 및 사용자와 함께 작업할 수 있습니다.

// Create an App instance once on main isolate,
// ideally as soon as the app starts
final appConfig = AppConfiguration(appId);
final app = App(appConfig);
final receivePort = ReceivePort();
// Later, access the App instance on background isolate
await Isolate.spawn((List<Object> args) async {
final sendPort = args[0] as SendPort;
final appId = args[1] as String;
try {
final backgroundApp = App.getById(appId);
// ... Access App users
final user = backgroundApp?.currentUser!;
// Use the App and user as needed.
sendPort.send('Background task completed');
} catch (e) {
sendPort.send('Error: $e');
}
}, [receivePort.sendPort, appId]);

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

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

자세한 내용은 로컬 배포 App Services 문서를 참조하세요.

AppConfiguration 에서를 지정할 수 있습니다.baseUrl

// Specify a baseUrl to connect to a server other than the default
final appConfig =
AppConfiguration(appId, baseUrl: Uri.parse('https://example.com'));
var app = App(appConfig);

버전 1.8.0에 추가 되었습니다.

버전 2.2.0에서 변경됨: updateBaseUrlnull 값을 허용합니다.

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

런타임 중에 를 변경하려면 실험용 baseUrl 앱.updateBaseUrl 을 호출합니다. 메서드. null 를 전달하여 baseUrl 을 기본값 으로 재설정할 수 있습니다.

// Specify a custom baseUrl to connect to.
// In this case, a custom server instance running on the device.
final appConfig = AppConfiguration(customServerAppId,
baseUrl: Uri.parse('http://localhost:80'));
var app = App(appConfig);
// ... log in a user and use the app ...
// Later, change the baseUrl to the default:
// https://services.cloud.mongodb.com
await app.updateBaseUrl(null);

이 API는 실험적이며 향후 릴리스에서 변경될 수 있습니다.

사용자로 로그인하고 동기화된 데이터베이스 를 연 후 baseUrl 를 변경하려면 앱 에서 클라이언트 재설정 을 수행해야 합니다. 자세한 내용은 클라이언트 재설정을 참조하세요.

코드에서 다음을 수행합니다.

  1. 동기화 세션 일시 중지

  2. app.updateBaseUrl 메서드를 사용하여 baseUrl 업데이트

  3. 사용자를 다시 로그인 하여 새 baseUrl

  4. 새 서버 에서 데이터를 가져오는 동기화된 데이터베이스 열기

사용자가 새 서버 를 인증하고 연결하려면 서버 와 클라이언트 가 모두 온라인 여야 합니다. 서버 가 온라인 가 아니거나 클라이언트 가 네트워크에 연결되어 있지 않으면 사용자는 데이터베이스 를 인증하고 열 수 없습니다.

돌아가기

Atlas App Services