5

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

在 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?

4

2 回答 2

9

你应该使用“字段”关键字

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

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

于 2012-10-23T04:36:40.320 回答
4

您可以发布您想要的字段:

Meteor.publish( null, function() {
  Meteor.users.find({}, {fields: {profile: 1, username: 1, ...}})
}
于 2012-10-23T04:52:02.953 回答