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

Acessar usuário de dados personalizado - SDK da Web

Nesta página

  • Visão geral
  • Exemplo de objeto de usuário
  • Ler usuário de dados personalizado
  • Saída
  • Modificar os dados personalizados de um usuário
  • Saída
  • Resumo

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

Realm faz referência a uma coleção MongoDB em seu cluster vinculado para localizar os dados personalizados de um determinado usuário, mas não adiciona ou atualiza nenhum documento de dados de usuário personalizado. Você é responsável por gerenciar e atualizar os dados do usuário na coleção. Para obter detalhes sobre como habilitar e configurar dados de usuário personalizados, consulte Ativar dados de usuário personalizados

Os exemplos de código nesta página usam o seguinte objeto de usuário no qual o campo custom_data ainda não foi definido.

{
id: '5f1f216e82df4a7979f9da93',
type: 'normal',
data: { email: 'test@example.com' },
custom_data: {
_id: '5f20d083a37057d55edbdd57',
userID: '5f1f216e82df4a7979f9da93',
description: 'a test document for user: test@example.com',
},
identities: [
{ id: '5f1f216e82df4a7979f9da90', provider_type: 'local-userpass' }
]
}

Importante

Para usar dados de usuário personalizados, você deve primeiro 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.

Você pode acessar uma cópia somente leitura dos dados personalizados de um usuário conectado diretamente da propriedade Realm.User.customData.

// Access a logged in user's read-only custom data
const customData = app.currentUser.customData;

Para buscar manualmente a versão mais recente dos dados personalizados de um usuário, chame User.refreshCustomData().

// Refresh a user's custom data to make sure we have the latest version
await app.currentUser.refreshCustomData();
{
"_id": "5f233a3ac49aca916792de1d",
"description": "a test document for user test@example.com",
"userID": "5f1f298f757611faec901d0f",
"favoriteColor": "pink"
}

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.

Você pode modificar os dados personalizados de um usuário atualizando o documento subjacente na coleta de dados personalizados do seu aplicativo.

O exemplo seguinte atualiza os dados personalizados do usuário para configurar a propriedade favoriteColor para "purple":

// Get a client object for your app's custom user data collection
const mongo = app.currentUser.mongoClient(CLUSTER_NAME);
const collection = mongo.db(DATABASE_NAME).collection(COLLECTION_NAME);
// Log the user's favorite color before we change it
console.log(
"old favoriteColor: ",
app.currentUser.customData.favoriteColor
);
// Update the user's custom data document
await collection.updateOne(
{ userId: app.currentUser.id }, // Query for the user object of the logged in user
{ $set: { favoriteColor: "purple" } } // Set the logged in user's favorite color to purple
);
// Refresh the user's local customData property
await app.currentUser.refreshCustomData();
// Log the user's new favorite color
console.log(
"new favoriteColor: ",
app.currentUser.customData.favoriteColor
);
old favoriteColor: pink
new favoriteColor: purple
  • Você pode utilizar usuário de dados personalizado para armazenar informações sobre seus usuários do aplicativo.

  • O campo de dados de usuário personalizado do objeto de usuário é somente leitura e somente pode ser modificado executando operações CRUD pelo serviço do Atlas.

Voltar

Trabalhe com vários usuários