ユーザー メタデータの管理 - Kotlin SDK
このページでは、Realm Kotlin SDK を使用して、承認された App Services App ユーザーのユーザー メタデータを管理する方法について説明します。 詳しくは、App Services ドキュメントで「 認証プロバイダのメタデータ」を参照してください。
Atlas App Services は、認証プロバイダからユーザー メタデータを読み取ることができます。 次に、App Services は各ユーザーのデータを User
オブジェクトの フィールドで公開します。 たとえば、ユーザーの名前、メール、誕生日、性 にアクセスしたいとします。
ユーザーのメタデータの読み取り
現在ログインしているユーザーのユーザー メタデータは、そのユーザーのユーザーオブジェクトを通じて読み取ることができます。 User
オブジェクトを介してユーザー メタデータを編集することはできません。
データを読み取るには、ログインユーザーのUser
オブジェクトでprofileAsBsonDocumentメソッドを呼び出します。
// Log in a user val user = app.login(Credentials.emailPassword(email, password)) // Access the user's metadata val userEmail = user.profileAsBsonDocument()["email"] Log.i("The logged-in user's email is: $userEmail")
ユーザー メタデータ オプションは、使用しているプロバイダーと有効なメタデータ フィールドによって異なります。
警告
ユーザー メタデータが古い可能性がある
Atlas App Services は、ユーザーがログイン時に最新バージョンのユーザー メタデータを取得します。 たとえば、ユーザーがログインプロバイダーを使用してメールアドレスやプロファイル画像を変更した場合、その変更はユーザーが再度ログインするまでユーザーメタデータの更新はありません。 認証情報をキャッシュしてログインフローをバイパスできるようにするため、ユーザーに再度ログインを強制しないと、ユーザーのメタデータが古くなる可能性があります。
Serializable User Metadata
バージョン 1.9.0 の新機能。
Kotlin SDK バージョン 1.9.0 では、以下をサポートする API が導入されています。
によって返されるユーザー メタデータ用の限定的かつ安定した EJSON エンコード
User.profileAsBsonDocument()
ユーザー.profile()によって返されるユーザー メタデータの完全なドキュメント直列化をサポートする実験的な EJSON エンコード 拡張メソッド。 このエンコードとメソッドには実験的なオプトインが必要です。
公式の Kotlin直列化 を追加する必要があります プロジェクトにライブラリを使用して、 Realm Kotlin SDK の EJSON直列化を使用します。詳細については、「 直列化 」を参照してください。
ユーザー メタデータの設定
App Services アプリケーションで構成したクライアント アプリからのみユーザー メタデータを読み取ることができます。
認証プロバイダから要求するユーザー メタデータを構成できます。 これは、認証プロバイダの設定に対して直接行います。 使用できるメタデータ フィールドの詳細については、プロバイダーの詳細を参照してください。
ユーザー メタデータの更新
認証プロバイダーを介してアクセスするユーザー メタデータは読み取り専用データです。 このソースから取得されたユーザー メタデータを更新または編集することはできません。
クライアント アプリ内からメタデータを更新するオプションをユーザーに付与する場合は、代わりにカスタム ユーザー データを使用します。