Docs Menu
Docs Home
/ /
Administrar usuarios

Datos de usuario personalizados - SDK de React Native

Puedes leer datos arbitrarios sobre los usuarios de tu aplicación, conocidos como datos de usuario personalizados, directamente en tu aplicación React Native. Por ejemplo, puedes almacenar el idioma preferido, la fecha de nacimiento o la zona horaria local de un usuario.

Antes de poder trabajar con datos de usuario personalizados desde su aplicación React Native, debe habilitarlos en su aplicación App Services. Para obtener más información, consulte Habilitar datos de usuario personalizados.

Advertencia

Los datos personalizados pueden estar obsoletos

App Services no actualiza dinámicamente los datos personalizados de un usuario si el documento subyacente cambia. En su lugar, obtiene una nueva copia de los datos cada vez que un usuario actualiza su token de acceso, como al iniciar sesión. Esto puede significar que los datos personalizados no reflejen los cambios inmediatamente, por ejemplo, las actualizaciones de un disparador de autenticación. Si el token no se actualiza, el SDK espera 30 minutos y lo actualiza en la siguiente llamada al backend, por lo que los datos personalizados del usuario podrían estar obsoletos hasta 30 minutos, más el tiempo hasta la siguiente llamada del SDK al backend.

Si no ha actualizado recientemente sus datos de usuario personalizados, utilice el campo customData del objeto de usuario. customData El campo es de sólo lectura.

Si ha actualizado sus datos de usuario personalizados en los últimos 30 minutos, utilice User.refreshCustomData().

import React, {useState, useEffect} from 'react';
import {useApp, useUser} from '@realm/react';
function ReadCustomUserData() {
const user = useUser();
const [customUserData, setCustomUserData] = useState();
// Access current custom user data with `user.customData`
function readCurrentCustomUserData() {
setCustomUserData(user.customData);
}
// Refresh custom user data with `user.refreshCustomData()`
async function refreshCustomUserData() {
const data = await user.refreshCustomData();
setCustomUserData(data);
}
// ...
}

Puede escribir en los datos de usuario personalizados de un usuario con MongoDB Data Access.

Sus operaciones de escritura deben incluir el ID de usuario en el campo ID de usuario que configuró al configurar los datos de usuario personalizados en el backend de la aplicación. Si no incluye el ID de usuario en el campo ID de usuario, los datos que escriba no se vincularán a los datos de usuario personalizados del usuario.

import React, {useEffect} from 'react';
import {useApp, useUser} from '@realm/react';
function WriteCustomUserData() {
const user = useUser();
async function writeCustomUserData(favoriteColor: string) {
const customUserDataCollection = user
.mongoClient('mongodb-atlas')
.db('custom-user-data-database')
.collection('custom-user-data');
const filter = {
userId: user.id, // Query for the user object of the logged in user
};
const updateDoc = {
$set: {
// Set User ID if it's not already set
userId: user.id,
// Set the logged in user's favorite color
favoriteColor,
},
};
const options = {upsert: true};
await customUserDataCollection.updateOne(filter, updateDoc, options);
// Refresh custom user data once it's been updated on the server
const customUserData = await user.refreshCustomData();
console.log(customUserData);
}
// ...
}

Nota

Para modificar el campo de datos personalizado desde una función de cliente o usuario, se debe configurar el permiso de escritura en la colección donde se almacenan los datos personalizados. Si prefiere restringir el acceso de escritura del cliente a los datos personalizados desde su aplicación, puede modificar el objeto desde una función del sistema.

Volver

Autenticar usuarios

En esta página