Atlas Function 호출 - Kotlin SDK
개요
Realm 코틀린 SDK (Kotlin SDK)를 사용하여 클라이언트 애플리케이션에서 Atlas Function 을 호출할 수 있습니다. 함수는 서버 측 로직을 정의하고 실행할 수 있는 서버리스 JavaScript 함수입니다. 이러한 서버 측 함수는 인증된 사용자의 컨텍스트에서 실행할 수 있으므로 Atlas에서 데이터에 할당한 규칙, 역할 및 권한을 존중합니다.
버전 1.9.0의 새로운 기능
EJSON 인코더를 사용하여 함수 인수를 직렬화하고 값을 반환할 수 있습니다. 예제를 포함한 자세한 내용 은 Atlas용 EJSON 인코딩을 참조하세요.
Atlas Function 구성 및 작성에 대한 자세한 내용은 App Services 문서에서 Atlas Function 을 참조하세요.
시작하기 전에
App Services App 에서 Atlas Function 을 정의합니다.
클라이언트 프로젝트에서 앱 클라이언트를 초기화합니다.
그런 다음 사용자를 인증합니다. 함수는 사용자 객체 를 통해 액세스합니다.
함수 호출
중요
Functions를 사용할 때 코드 삽입을 방지하기 위해 클라이언트 데이터를 삭제해야 합니다.
코틀린 SDK ( )에서를 호출하려면 Atlas Function 함수 Kotlin SDK 이름과 모든 인수를 Functions.call()에 전달합니다.
두 개의 인수를 받아 더한 다음 결과를 반환하는 sum
이라는 App Services App에서 실행 중인 Realm 함수를 생각해 보겠습니다.
// Add two numbers exports = function(a, b) { return a + b; };
코틀린 SDK (Kotlin SDK)에서 이 Atlas Function을 호출하려면 다음을 수행하세요.
runBlocking { val app: App = App.create(appID) val user = app.login(credentials) // Access the Atlas Function through the authenticated user // Pass the Function name and all arguments val response = user.functions.call<Int>("sum", 1, 2) print(response) // prints: 3 }
Realm Kotlin SDK v1.8.x 및 이전 버전의 제한 사항
버전 1.9.0에서 변경되었습니다.
Kotlin SDK v1.9.0 이상을 사용하는 경우 이러한 제한 사항이 더 이상 적용되지 않습니다.
코틀린 (Kotlin) 직렬화 엔진 이 아직 타사 라이브러리를 지원 하지 않지만 인수로 전달할 수 있는 유형과 호출된 함수에서 결과를 역직렬화할 수 있는 유형에 제한이 있습니다.
객체를 인수로 전달할 수 없습니다 .
다음은 유효한 인수 값 유형입니다:
Primitives
Bson
MutableRealmInt
RealmUUID
ObjectId
RealmInstant
RealmAny
배열
컬렉션(목록 또는 집합)
Map
유효한 반환 값 유형은 다음과 같습니다.
Primitives
Bson
MutableRealmInt
RealmUUID
ObjectId
RealmInstant
RealmAny
BsonArray(배열 및 컬렉션 인수 유형의 경우)
BsonDocument(Map 인수 유형의 경우)