Docs Menu
Docs Home
/ /
Administrar usuarios

Datos de usuario personalizados - SDK de Flutter

Puede almacenar datos personalizados arbitrarios sobre sus usuarios con Atlas App Services. Por ejemplo, puede almacenar el idioma preferido, la fecha de nacimiento o la zona horaria local de un usuario. Antes de escribir y leer estos datos, debe habilitar los datos de usuario personalizados en el backend. Para obtener más información, consulte Habilitar datos de usuario personalizados.

Importante

Actualmente, solo se pueden leer datos de usuario personalizados con el SDK de Flutter. En una futura actualización, también se podrán escribir datos de usuario personalizados desde el SDK.

Puede crear, actualizar o eliminar datos de usuario personalizados utilizando uno de los otros SDK de Realm, con funciones de Atlas o consultando directamente a Atlas.

Para utilizar datos de usuario personalizados, primero debe habilitarlos en App Services:

  1. Crear una aplicación.

  2. Habilitar datos de usuario personalizados.

Recupera datos de usuario personalizados en User.customData propiedad de un usuario conectado:

final customUserData = user.customData;

App Services no actualiza dinámicamente el valor de la User.customData Inmediatamente cuando cambian los datos subyacentes. En cambio, App Services obtiene la versión más reciente de los datos de usuario personalizados cada vez que un usuario actualiza su token de acceso o cuando se llama explícitamente a User.refreshCustomData(), lo que garantiza que la aplicación tenga los datos de usuario personalizados más recientes.

// refreshCustomData() returns the updated custom data object
final updatedCustomData = await user.refreshCustomData();
// Now when you access User.customData it's the value
// returned from User.refreshCustomData()

Puedes escribir en datos de usuario personalizados con una función Atlas. Estas funciones son funciones JavaScript del lado del servidor integradas en tu aplicación backend. Puedes llamarlas directamente desde el SDK de Flutter de Realm.

No es posible escribir datos de usuario personalizados directamente desde el SDK de Flutter de Realm.

Para obtener más información sobre las funciones de Atlas, consulte la siguiente documentación:

No existe un patrón único para agregar datos de usuario personalizados desde una función Atlas. Debes escribir la función o funciones que mejor se adapten al caso de uso de tu aplicación.

En este ejemplo, la función Atlas toma un objeto transferido por el cliente y lo añade a la colección de datos de usuario personalizados en Atlas. La función crea los datos de usuario personalizados si aún no existen y reemplaza todos los datos que contienen, si existen.

writeCustomUserData.js - Atlas Function ejecutándose en el servidor (JavaScript)
exports = async function writeCustomUserData(newCustomUserData) {
const userId = context.user.id;
const customUserDataCollection = context.services
.get("mongodb-atlas")
.db("custom-user-data-database")
.collection("custom-user-data");
const filter = { userId };
// Replace the existing custom user data document with the new one.
const update = { $set: newCustomUserData };
// Insert document if it doesn't already exist
const options = { upsert: true };
const res = await customUserDataCollection.updateOne(filter, update, options);
return res;
};

El código del SDK de Realm para llamar a esta función:

Código de cliente del SDK de Flutter de Realm (Dart)
final user = app.currentUser!;
final updatedTimestamp = DateTime.now().millisecondsSinceEpoch;
final updatedCustomUserData = {
"userId": user.id,
"favoriteFood": "pizza",
"lastUpdated": updatedTimestamp
};
final functionResponse = await user.functions
.call("writeCustomUserData", [updatedCustomUserData]);
// Contains the `updatedCustomUserData` object just added
// in the above Atlas Function call
final customUserData = await user.refreshCustomData();

Volver

Vincular identidades de usuario

En esta página