就像问题一样,可以这样做吗?
我想将用户链接的数组插入当前用户的个人资料中。我在客户端尝试了类似的操作,但它不起作用:
Meteor.users.update( {_id: Meteor.userId()}, {
$set: {
profile: {
userlinks: {
owned: "_entry_id"
}
}
}
});
我也尝试用insert替换update但是没有用。
我怀疑它可能是什么:
或许我只是不知道我在说什么(最有可能)
答案 0 :(得分:3)
检查Meteor Update Docs您的语法错误。 尝试:
var id = Meteor.userId();
Meteor.users.update( id, {
$set: {
profile: {
userlinks: {
owned: "_entry_id"
}
}
}
});
答案 1 :(得分:1)
您可以这样做,如果您使用的是自定义帐户,则您的用户需要有一个配置文件字段用户界面确保在对用户进行身份验证时将配置文件设置为某个内容即使它只是一个空白对象来启动用:
var options = {
username: 'some_user',
password: 'password',
email: 'email@domain.com',
profile: {}
}
Accounts.createUser(options, function(err){
if(err){
//do error handling
}
else
//success
});
如果您删除了不安全的软件包,则需要确保设置Meteor.users.allow
类似的东西:
Meteor.users.allow({
update: function(userId, doc, fieldNames, modifier){
if(userId === doc._id && fieldNames.count === 1 && fieldNames[0] === 'profile')
return true;
}
})
这样用户只能更新自己,并且只能更新个人资料字段。