Meteor发布不适用于私人service.facebook.email出版物

时间:2016-03-22 22:29:17

标签: mongodb meteor

这是一个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函数发布的用户对象部分(“users”) 。用户的Facebook电子邮件无处可寻。下面的代码演示了当我运行上面的findOne代码时我一直在接收的内容。

{
_id: "3aNP7euRFGWhGEgq2",
profile: {name: "David Daish"},
services: {facebook: {name: "David Daish", ID: "1987779184781528"}}
}

正如您所看到的,Facebook电子邮件属性无处可寻。 zilch,走了,不在那里。所以有我的问题:

我如何获得services.facebook.email的价值,更重要的是,我怎样才能以允许客户只访问自己的services.facebook.email值的方式来实现?

非常感谢您的协助。这让我困惑了几天。

0 个答案:

没有答案
相关问题