Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

Atlas Functionの呼び出し - Kotlin SDK

項目一覧

  • Overview
  • 始める前に
  • 関数の呼び出し
  • Realm Kotlin SDK v1.8.x 以前の制限

Realm Kotlin SDK を使用して、クライアント アプリケーションからAtlas Functionを呼び出すことができます。 関数は、サーバー側のロジックを定義して実行できるサーバーレス JavaScript 関数です。 これらのサーバーサイド関数は認証されたユーザーのコンテキストで実行できるため、Atlas でデータに割り当てたルール、ロール、権限が尊重されます。

バージョン 1.9.0 の新機能

EJSON エンコードを使用して、関数の引数をシリアル化し、値を返すことができます。 例を含む詳細については、 「 Atlas 用の EJSON エンコーディング 」を参照してください。

Atlas Function の構成と記述の詳細については、App Services ドキュメントの「 Atlas Function 」を参照してください。

  1. App Services Appで、 Atlas Functionを定義します。

  2. クライアント プロジェクトで、App クライアントを初期化します。

  3. 次に、ユーザー を認証します。 関数にはユーザーオブジェクトがアクセスされます。

重要

Atlas Functions を使用する際は、コード インジェクションから保護するために、クライアント データを必ずサニタイズしてください。

Kotlin SDK から Atlas Function を呼び出すには、その名前とすべての引数をFunctions.ball()に渡します。

たとえば、2 つの引数を受け取り、それらを加算して結果を返す sumという名前の App Services App で実行されている Atlas Function を考えてみましょう。

Atlas Function
// Add two numbers
exports = function(a, b) {
return a + b;
};

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
}

バージョン 1.9.0 で変更

Kotlin SDK v1.9.0 以降を使用している場合、これらの制限は適用されなくなります。

Kotlin直列化エンジン はまだサードパーティのライブラリをサポートしていないため、引数として渡すことができるタイプと、呼び出される関数で結果を逆シリアル化できるタイプには制限があります。

オブジェクトを引数として渡すことはできません

以下は、有効な引数の型です。

  • プリミティブ

  • Bson

  • MutableRealmInt

  • RealmUUID

  • ObjectId

  • Realmインスタンス

  • RealmAny

  • 配列

  • コレクション(リストまたはセット)

  • Map

以下は、有効な戻り値の型です。

  • プリミティブ

  • Bson

  • MutableRealmInt

  • RealmUUID

  • ObjectId

  • Realmインスタンス

  • RealmAny

  • BsonArray (配列引数型とコレクション引数型用)

  • BsonDocument (マップ引数型用)

戻る

App Services への接続