【发布时间】:2016-11-05 10:38:52
【问题描述】:
我一直在研究这个问题,但找不到明确的解释。我的流星应用程序安装了用户帐户,并且登录/注销一切正常。但是,我想为我的用户添加一些可选字段,例如年龄、性别等。我该怎么做呢?请注意,我是 Meteor 的新手,所以请明确一点。
【问题讨论】:
标签: javascript class meteor
我一直在研究这个问题,但找不到明确的解释。我的流星应用程序安装了用户帐户,并且登录/注销一切正常。但是,我想为我的用户添加一些可选字段,例如年龄、性别等。我该怎么做呢?请注意,我是 Meteor 的新手,所以请明确一点。
【问题讨论】:
标签: javascript class meteor
要在useraccounts 包提供的用户注册表中添加更多字段,请参阅官方Guide 的Form Fields Configuration 部分
假设您想在注册表单中添加一个gender 字段,您可以这样做
AccountsTemplates.addField({
_id: "gender",
type: "select",
displayName: "Gender",
select: [
{
text: "Male",
value: "male",
},
{
text: "Female",
value: "female",
},
],
});
【讨论】:
您要查找的文档是Meteor.users 集合。它位于 http://docs.meteor.com 的“完整 API”下,这可能解释了您错过它的原因。
用户文档可以包含您想要存储的有关用户的任何数据。 Meteor 对以下字段进行了特殊处理:
- 用户名:标识用户的唯一字符串。
- 电子邮件:[...]
- createdAt:创建用户文档的日期。
- profile:用户可以使用任何数据创建和更新的对象。除非您在 Meteor.users 集合上有拒绝规则,否则不要在个人资料中存储您不希望用户编辑的任何内容。
[...]
默认情况下,当前用户的用户名、电子邮件和个人资料会发布到客户端。您可以通过以下方式为当前用户发布其他字段:
// server
Meteor.publish("userData", function () {
if (this.userId) {
return Meteor.users.find({_id: this.userId},
{fields: {'other': 1, 'things': 1}});
} else {
this.ready();
}
});
// client
Meteor.subscribe("userData");
【讨论】:
null 发布者会更好。请参阅上面的链接问题。
检查简单的模式包,这个包有一个例子
【讨论】: