我安装了以下智能包:
standard-app-packages
autopublish
insecure
preserve-inputs
bootstrap-3
accounts-base
accounts-password
jquery
accounts-ui-bootstrap-3
iron-router
我正在尝试更新用户的电子邮件地址,因为我安装了不安全和自动发布的软件包,我想我可以这样做:
Template.settings.events({
'click #update': function (evt, tmpl) {
evt.preventDefault();
var email = tmpl.find("#inputEmail").value;
Meteor.users.update({_id:Meteor.userId()}, {$set:{"emails":[{address:email}]}});
}
});
但我一直得到:更新失败:访问被拒绝
答案 0 :(得分:0)
Mabye文档中的这条评论可以帮助你。
默认情况下,允许用户使用Accounts.createUser指定自己的配置文件字段,并使用Meteor.users.update对其进行修改。要允许用户编辑其他字段,请使用Meteor.users.allow。禁止用户对其用户文档进行任何修改
您尝试更改电子邮件字段。首先,电子邮件字段应该是(如果您想将电子邮件公开)在配置文件文件夹中。所以你必须做类似
的事情$set: {
profile: {
emails: {
}
}
}
如果更改配置文件之外的其他字段,则必须定义allow-rules。