托管用户元数据 - Kotlin SDK
本页介绍如何使用Realm Kotlin SDK管理授权App Services App用户的用户元数据。 有关详细信息,请参阅App Services文档中的身份验证提供程序元数据。
Atlas App Services 可以从身份验证提供者读取用户元数据。然后,App Services 会在每个用户的 User
对象的字段中公开其数据。 例如,您可能想要访问用户的姓名、电子邮件、生日或性别。
读取用户的元数据
您可以通过当前登录用户的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 在用户登录时获取最新版本的用户元数据。 例如,如果用户通过登录提供程序更改了其电子邮件地址或个人资料照片,则在用户再次登录之前,这些更改不会在用户元数据中更新。 由于我们会缓存凭证并允许您绕过登录流程,因此除非强制用户再次登录,否则用户元数据可能会过时。
可序列化的用户元数据
1.9.0 版本中的新增功能。
Kotlin SDK 版本 1.9.0 引入了一个 API,该 API 支持:
一个有限但稳定的 EJSON 编码器,用于返回的用户元数据
User.profileAsBsonDocument()
一个实验性 EJSON 编码器,支持对User.profile()返回的用户元数据进行完整文档序列化 扩展方法。 此编码器和方法需要实验性选择加入。
您必须添加官方 Kotlin序列化 库添加到您的项目中,以使用Realm Kotlin SDK 的EJSON序列化。有关详细信息,请参阅 序列化。
配置用户元数据
您只能从在 App Services 应用程序上配置的客户端应用程序读取用户元数据。
您可以配置从身份验证提供程序请求的用户元数据。 您可以直接在身份验证提供程序的配置上执行此操作。 有关可以使用哪些元数据字段的更多详细信息,请参阅提供商详细信息:
更新用户元数据
通过身份验证提供者访问的用户元数据是只读数据。您无法更新或编辑来自此来源的用户元数据。
如果您想让用户选择在客户端应用程序中更新其元数据,请改用自定义用户数据。