User Metadata - Node.js SDK
Read a User's Metadata
You can read the user metadata of a
currently logged-in user through that user's User
object. You cannot
edit user metadata through a User
object.
To read the data, access the profile
property on the User
object
of a logged-in user:
try { await app.logIn( Realm.Credentials.emailPassword("someone@example.com", "Pa55w0rd!") ); } catch (error) { await app.emailPasswordAuth.registerUser({ "someone@example.com", "Pa55w0rd!" }); await app.logIn( Realm.Credentials.emailPassword("someone@example.com", "Pa55w0rd!") ); } const userEmail = app.currentUser.profile.email;
User metadata options vary depending on which provider you're using and which metadata fields you enable.
Warning
User Metadata May Be Stale
Atlas App Services fetches the most recent version of user metadata when a user logs in. If the user changes their email address or profile photo with a login provider, for example, those changes do not update in user metadata until the user logs in again. Because we cache credentials and enable you to bypass the login flow, user metadata may become stale unless you force the user to log in again.
Configure User Metadata
You can only read user metadata from the client app that you have configured on the App Services application.
You can configure the user metadata you request from an authentication provider. You do this directly on the authentication provider's configuration. For more details on which metadata fields you can use, see the provider details:
You can change which metadata fields you have configured by editing the provider's configuration.
Update User Metadata
User metadata that you access through the authentication provider is read-only data. You cannot update or edit user metadata that comes from this source.
If you would like to give a user the option the update their metadata from within your client app, use custom user data, instead.