访问自定义用户数据 - Node.js SDK
Atlas Device SDK 已弃用。 有关详细信息,请参阅弃用页面。
您可以使用Atlas App Services存储有关用户的任意自定义数据。 示例,您可以存储用户的首选语言、出生日期或当地时区。 在写入和读取此数据之前,您必须在后端启用自定义用户数据。 要学习;了解详情,请参阅启用自定义用户数据。
开始之前
要使用自定义用户数据,必须首先在 App Services 中启用自定义用户数据:
读取自定义用户数据
您可以在 User
对象的customData属性中检索自定义用户数据:
const customUserData = app.currentUser.customData; console.log(customUserData);
当基础数据发生变化时, Atlas App Services不会立即更新User.customData
的值。 相反,每当用户刷新其 访问令牌 或您显式调用 refreshCustomData() 时,Atlas App Services 都会获取最新版本的自定义用户数据,从而确保您的应用程序拥有最新的自定义用户数据。
const updatedCustomUserData = await user.refreshCustomData(); console.log(updatedCustomUserData);
注意
用户对象的customData
字段在节点应用程序中是只读的。
使用 MongoClient 写入自定义用户数据
通过MongoDB Atlas 服务和mongoClient使用标准 CRUD 操作,您可以访问用户的自定义数据。 以下示例更新用户的自定义数据以将用户的favoriteColor
更改为粉红色。
// 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);
注意
要通过客户端或用户函数修改自定义数据字段,必须配置对存储自定义数据的集合的写入权限。 如果您希望限制客户端对应用程序中自定义数据的写入权限,您仍然可以通过系统函数修改该对象。