繁体   English   中英

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

[英]TypeError: Meteor.user(…).services is undefined

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

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

在控制台上说

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

据我了解,这是因为user()。services尚未初始化。 我将代码包装在if(Meteor.user())以确认用户已被初始化。 该代码在按下按钮时执行,因此肯定有足够的时间启动。 当我删除自动发布时,这种情况就开始发生(尽管可能无关)。 我需要做些其他事情才能使其在没有自动发布的情况下工作吗?

解决了以下问题:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM