删除自动发布后,如何阅读Meter.user()。services?

时间:2016-11-15 10:24:02

标签: javascript meteor google-oauth facebook-oauth

在我从项目onStop()中删除autopublish包之前, 我能够读入登录用户正在使用的oAuth服务,例如
meteor remove autopublish

var facebookSignIn = Meteor.user().services.facebook;

这一点很重要,因为我会使用此var googleSignIn = Meteor.user().services.google; googleSignIn信息来确定如何保存登录用户的个人详细信息,例如:姓名,电子邮件和个人资料图片。
在代码中:

facebookSignIn

如果我删除了自动发布包,如何检索var facebookSignIn = Meteor.user().services.facebook; var googleSignIn = Meteor.user().services.google; var ownderId = Meteor.user()._id; if (facebookSignIn) { console.log("Its a Facebook Account Sign in!"); var userName = Meteor.user().services.facebook.name; var emailAdress = Meteor.user().services.facebook.email; var facebookProfilePic = "http://graph.facebook.com/" + user.services.facebook.id + "/picture/?type=large"; } else if (googleSignIn) { console.log("Its a Google Account Sign in!"); var userName = Meteor.user().services.google.name; var emailAdress = Meteor.user().services.google.email; var googleProfilePic = Meteor.user().services.google.picture; } else { console.log("Your not Signed in!"); } Meteor.user().services.facebook

在浏览器控制台(main.js:1140)中,将显示以下错误消息:

Meteor.user().services.google

main.js:1140上的代码是:

Uncaught TypeError: Cannot read property 'facebook' of undefined 

1 个答案:

答案 0 :(得分:1)

您必须先从服务器发布该集合,以便在客户端中提供该集合(而该集合必须订阅已发布的集合)

Meteor.publish("userPublication", function publishFunction(){ 
       return Meteor.users.find(); })