我想要存储在客户端上我用户文档中的Facebook accessToken。在meteor documentation之后,我应该添加一个新的发布调用。
在server.js中:
Meteor.publish("access_token", function () {
return Meteor.users().find(
{ _id : Meteor.userId() },
{'services.facebook.accessToken': 1}
);
});
在client.js中:
Meteor.subscribe("access_token");
好吧,这是我迷路的地方。现在,对于登录用户,accessToken是否只显示在Meteor.users集合中?像:
var user = Meteor.users.findOne({ _id : Meteor.userId() });
console.log(user); // includes services.facebook.accessToken now
显然,我已经尝试了上述内容并且accessToken没有显示出来。是的,我已经确认mongo文档包含services.facebook。
那么......我是否创建了一个新的客户端集合,并以某种方式将其与新发布相关联?我如何获得accessToken?
答案 0 :(得分:9)
你应该使用“fields”关键字
Meteor.users.find({ _id: this.userId },
{ fields: { the-extra-fields-that-you-want-go-here: 1 } }
);
答案 1 :(得分:4)
您可以发布所需的字段:
Meteor.publish( null, function() {
Meteor.users.find({}, {fields: {profile: 1, username: 1, ...}})
}