我正在尝试获取Meteor用户的Facebook ID(通过Facebook登录)。以下行给了我麻烦:
var userID = Meteor.user().services.facebook.id;
在控制台中说
TypeError: Meteor.user(...).services is undefined
据我所知,这是因为user()。services尚未初始化。我将代码包装在if(Meteor.user())
中以确认用户已初始化。按下按钮时执行代码,因此它肯定有足够的时间启动。当我删除自动发布时,这种情况就开始发生了(虽然这可能是不相关的)。我还需要做些什么才能让它在没有自动发布的情况下工作吗?
答案 0 :(得分:4)
解决了以下问题:
Meteor.publish("getUserData", function () {
return Meteor.users.find({_id: this.userId});
});
并订阅。填充该订阅后,所有Meteor.user.services数据都可用。
答案 1 :(得分:0)
默认情况下,客户端上的用户文档中不包含 services 键,因为它包含安全性详细信息。您可以通过方法调用获取它,或者专门从服务器发布它并订阅它。