我正在尝试使用firstName
更新user.profile
中创建的onCreateUser
字段:
Accounts.onCreateUser(function(options, user) {
user.profile = options.profile || {};
user.profile.firstName = options.firstName;
return user;
});
我也使用allow:
Meteor.users.allow({
update: function(userId, doc, fields, modifier) {
if (fields === "profile.firstName") {
return true;
}
}
});
当我使用时:
Meteor.users.update({
_id: Meteor.userId()
}, {
$set: {
profile: "George"
}
});
它有效,但它不是我需要的。
我需要更新firstName
:
Meteor.users.update({
_id: Meteor.userId()
}, {
$set: {
profile.firstName: "George"
}
});
但是我收到了这个错误:
SyntaxError:missing:属性id
之后
我错过了什么?
答案 0 :(得分:1)
如果您使用dot notation,则需要将整个虚线字段名称括在引号中。
在你的情况下:
Meteor.users.update({
_id: Meteor.userId()
}, {
$set: {
"profile.firstName": "George"
}
});