Acessar dados de usuário personalizados - SDK do Node.js
Nesta página
Você pode armazenar dados personalizados arbitrários sobre seus usuários com o Atlas App Services. Por exemplo, você pode armazenar o idioma preferido do usuário, a data de nascimento ou o fuso horário local. Antes de escrever e ler esses dados, você deve habilitar os dados de usuário personalizados no backend. Para saber mais, consulte Habilitar dados de usuário personalizados.
Antes de começar
Para usar dados de usuário personalizados, primeiro você deve habilitá-los no App Services:
Crie um usuário ao qual aplicar dados personalizados.
Ler usuário de dados personalizado
Você recupera dados personalizados do usuário na propriedade customData do objeto User
:
const customUserData = app.currentUser.customData; console.log(customUserData);
Atlas App Services não atualiza imediatamente o valor do User.customData
quando os dados subjacentes são alterados. Em vez disso, o Atlas App Services obtém a versão mais recente dos dados de usuário personalizado sempre que um usuário atualiza seu token de acesso ou quando você chama explicitamente refreshCustomData(), que garante que seu aplicativo tenha os dados de usuário personalizados mais recentes.
const updatedCustomUserData = await user.refreshCustomData(); console.log(updatedCustomUserData);
Observação
O campo customData
do objeto de usuário é somente leitura em um aplicativo nó.
Gravar em dados de usuário personalizados com um MongoClient
Usando operações CRUD padrão por meio do serviço MongoDB Atlas e um mongoClient, você pode acessar os dados personalizados de um usuário. O exemplo a seguir atualiza os dados personalizados de um usuário para alterar o favoriteColor
do usuário para cor-de-rósea.
// A user must be logged in to use a mongoClient const user = app.currentUser; const mongo = user.mongoClient("mongodb-atlas"); const collection = mongo.db("custom-user-data-database").collection("custom-user-data"); // Query for the user object of the logged in user const filter = { userId: user.id}; // Set the logged in user's favorite color to pink const update = { $set: { favoriteColor: "pink" }}; // Insert document if it doesn't already exist const options = { upsert: true }; const result = await collection.updateOne(filter, update, options);
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.