如何将字段添加到Meteor.users集合中

squ*_*lan 5 meteor

我想要存储在客户端的用户文档中的Facebook accessToken.在流星文档之后,我应该添加一个新的发布调用.

在server.js中:

Meteor.publish("access_token", function () {
  return Meteor.users().find(
    { _id : Meteor.userId() }, 
    {'services.facebook.accessToken': 1}
  );
});
Run Code Online (Sandbox Code Playgroud)

在client.js中:

Meteor.subscribe("access_token");
Run Code Online (Sandbox Code Playgroud)

好吧,这是我迷路的地方.现在,对于登录用户,accessToken是否只显示在Meteor.users集合中?喜欢:

var user = Meteor.users.findOne({ _id : Meteor.userId() }); 
console.log(user); // includes services.facebook.accessToken now
Run Code Online (Sandbox Code Playgroud)

显然,我已经尝试了上述内容并且accessToken没有显示出来.是的,我已经确认mongo文档包含services.facebook.

那么......我是否创建了一个新的客户端集合,并以某种方式将其与新发布相关联?我如何获得accessToken?

cra*_*ngs 9

你应该使用"fields"关键字

Meteor.users.find({ _id: this.userId },
    { fields: { the-extra-fields-that-you-want-go-here: 1 } }
);
Run Code Online (Sandbox Code Playgroud)

http://docs.meteor.com/#fieldspecifiers