Mongodb Meteor publish不适用于私人服务。facebook.email publish

Mongodb Meteor publish不适用于私人服务。facebook.email publish,mongodb,meteor,Mongodb,Meteor,这是一个Meteor/MongoDb问题。在下面的代码中,我试图让所有客户端访问所有用户的Facebook名称和Facebook个人资料ID 与此同时,我正试图让客户访问他们在Facebook个人资料中定义的自己的电子邮件 Meteor.publish("users", function(){ return Meteor.users.find({}, {fields: {'services.facebook.name': true, 'services.facebook.id

这是一个Meteor/MongoDb问题。在下面的代码中,我试图让所有客户端访问所有用户的Facebook名称和Facebook个人资料ID

与此同时,我正试图让客户访问他们在Facebook个人资料中定义的自己的电子邮件

Meteor.publish("users", function(){
  return Meteor.users.find({}, {fields:
    {'services.facebook.name': true,
    'services.facebook.id': true}
    })
});

Meteor.publish("mail", function () {
    return Meteor.users.find({_id: this.userId},
        {fields: {'services.facebook.email': 1}});
});
在下面的代码中,我是如何订阅上述出版物的

Meteor.subscribe("users");
Meteor.subscribe("mail");
就我所知,这应该是可行的,但是当我尝试使用用户对象时,比如在下面的代码中

var user = Meteor.users.findOne({_id: Meteor.userId()});
console.log(user);
。。。我只接收作为标准(profile.name&_id)发布的用户对象的部分,以及由上述代码中的第一个meteor.publish函数发布的用户对象的部分(“用户”)。该用户的Facebook电子邮件不见踪影。下面的代码演示了当我运行上面的findOne代码时我一直收到的内容

{
_id: "3aNP7euRFGWhGEgq2",
profile: {name: "David Daish"},
services: {facebook: {name: "David Daish", ID: "1987779184781528"}}
}
正如你所看到的,Facebook的电子邮件属性在任何地方都找不到。没了,没了,没了。因此,我的问题是:

我如何获得服务.facebook.email的价值,更重要的是,我如何让客户只访问他们自己的服务。facebook.email的价值?

事先非常感谢您的帮助。这让我困惑了好几天