我正在使用默认的User Accounts Meteor软件包并尝试为每个用户实施基本设置。由于User Accounts包附带了一个配置文件字段,我认为这是插入一个数组来保存该特定用户设置的最佳位置。
这是我使用的代码。
var profile =
{
settings:
[{
id_: new Meteor.Collection.ObjectID(),
rule_id: "name1",
turned_on: false,
date_created: new Date(),
date_updated:new Date()
},
{
id_: new Meteor.Collection.ObjectID(),
rule_id: "name2",
turned_on: false,
date_created: new Date(),
date_updated:new Date()
}
]};
Accounts.createUser({username: email, email: email, password: password, profile: profile }, //callback etc etc..
我在Accounts.createUser的调用中没有错误,但是当我在控制台中打印用户时 - >配置文件字段为空:"配置文件" :{}
P.S。现在安装了不安全和自动发布。
我认为我在这里看起来很容易。任何帮助表示赞赏! 谢谢 :) 亚历克斯
答案 0 :(得分:0)
过早地问这个问题:/能够搞清楚! :)
虽然我仍然无法通过Accounts.createUser()方法插入配置文件信息,但这是我解决它的方式。
1.call Accounts.createUser(etc etc)
2.inside回调函数,使用Meteor.userId()获取当前用户ID;即var userId = Meteor.userId();
3.call Meteor.users.update({_ id:userId},{$ set:{profile:profile}})//使用原始问题中提到的配置文件数组。
我真诚地希望这将有助于将来的某个人! 亚历
答案 1 :(得分:0)
您还可以使用Accounts.onCreateUser
修改用户的个人资料。这是一个非常标准的模式。
Accounts.onCreateUser(function(options, user){
user.profile = {
settings:
[{
id_: Random.id(),
rule_id: "name1",
turned_on: false,
date_created: new Date(),
date_updated: new Date()
},
{
id_: Random.id(),
rule_id: "name2",
turned_on: false,
date_created: new Date(),
date_updated: new Date()
}
]};
return user;
});
此处使用Random.id()
代替new Meteor.Collection.ObjectID()
答案 2 :(得分:0)