Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ /

Usuário de dados personalizado - React Native SDK

Nesta página

  • Pré-requisitos
  • Ler usuário de dados personalizado
  • Gravar dados de usuário personalizados

Você pode ler dados arbitrários sobre seus usuários de aplicativo, conhecidos como dados de usuário personalizados, diretamente dentro do seu aplicativo React Native. Por exemplo, você pode armazenar o idioma preferido do usuário, a data de nascimento ou o fuso horário local.

Antes de poder trabalhar com dados de usuário personalizados do seu aplicativo React Native , você deve habilitá-lo em seu App Services App. Para saber mais, consulte Habilitar dados de usuário personalizados.

Aviso

Os dados personalizados podem ser obsoletos

O App Services não atualiza dinamicamente os dados personalizados de um usuário se o documento subjacente for alterado. Em vez disso, o App Services obtém uma nova cópia dos dados sempre que um usuário atualiza seu token de acesso, por exemplo, quando faz login. Isso pode significar que os dados personalizados não refletirão imediatamente as alterações, por exemplo, atualizações de um trigger de autenticação. Se o token não for atualizado o SDK aguardará 30 minutos e, em seguida, o atualizará na próxima chamada para o backend, assim os dados personalizados do usuário poderão ficar obsoletos por até 30 minutos, mais o tempo até que ocorra a próxima chamada do SDK para o backend.

Se você não atualizou recentemente seus dados de usuário personalizado, use o campo customData do objeto de usuário. O campo customData é somente leitura.

Se você atualizou seus dados de usuário personalizado nos últimos 30 minutos, use 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);
}
// ...
}

Você pode gravar nos dados de usuário personalizados de um usuário com o MongoDB Data Access.

Suas operações de gravação devem incluir o User.id no campo ID do usuário que você definiu ao configurar dados de usuário personalizados no backend do aplicativo. Se você não incluir o ID do usuário no campo ID do usuário, os dados que você escrever não serão vinculados aos dados de usuário personalizado do usuário.

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);
}
// ...
}

Observação

Para modificar o campo de dados personalizados a partir de uma função de cliente ou usuário, é necessário configurar a permissão de gravação na coleção em que os dados personalizados estão armazenados. Se preferir restringir o acesso de gravação do cliente aos dados personalizados do seu aplicativo, você ainda poderá modificar o objeto a partir de uma função do sistema.

Voltar

Autentique usuários