TypeError:Meteor.user(...)。services未定义

时间:2015-09-02 02:11:10

标签: javascript meteor

我正在尝试获取Meteor用户的Facebook ID(通过Facebook登录)。以下行给了我麻烦:

var userID = Meteor.user().services.facebook.id;

在控制台中说

TypeError: Meteor.user(...).services is undefined

据我所知,这是因为user()。services尚未初始化。我将代码包装在if(Meteor.user())中以确认用户已初始化。按下按钮时执行代码,因此它肯定有足够的时间启动。当我删除自动发布时,这种情况就开始发生了(虽然这可能是不相关的)。我还需要做些什么才能让它在没有自动发布的情况下工作吗?

2 个答案:

答案 0 :(得分:4)

解决了以下问题:

Meteor.publish("getUserData", function () {
    return Meteor.users.find({_id: this.userId});
});

并订阅。填充该订阅后,所有Meteor.user.services数据都可用。

答案 1 :(得分:0)

默认情况下,客户端上的用户文档中不包含 services 键,因为它包含安全性详细信息。您可以通过方法调用获取它,或者专门从服务器发布它并订阅它。