Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 如何获取登录用户Meteor的电子邮件id?_Email_Meteor_Accounts - Fatal编程技术网

Email 如何获取登录用户Meteor的电子邮件id?

Email 如何获取登录用户Meteor的电子邮件id?,email,meteor,accounts,Email,Meteor,Accounts,我在meteor.com下部署了一个应用程序,可以使用社交媒体连接登录。Meteor帐户facebook帐户twitter帐户使用google软件包 但这个Meteor应用程序在发布“电子邮件”后不会返回登录用户的电子邮件id 我们以前使用以下代码获取登录用户的电子邮件id,但现在它不起作用 Meteor.user().emails[0].address 我的应用程序中的代码: 服务器: Meteor.publish(null, function() { return Meteor.u

我在meteor.com下部署了一个应用程序,可以使用社交媒体连接登录。Meteor帐户facebook帐户twitter帐户使用google软件包

但这个Meteor应用程序在发布“电子邮件”后不会返回登录用户的电子邮件id

我们以前使用以下代码获取登录用户的电子邮件id,但现在它不起作用

Meteor.user().emails[0].address
我的应用程序中的代码:

服务器:

Meteor.publish(null, function() {
    return Meteor.users.find({_id: this.userId}, {fields: { emails: 1, profile: 1 } });
});
客户:

Template.layout.events({
    'click #checkUser':function(){
        var user = Meteor.user();
        var email = user && user.emails && user.emails[0].address

        alert(email);
    }
})
但此函数返回“未定义”


请提供帮助

您可以使用此软件包
meteor add splendido:accounts emails字段

这是一个Meteor软件包,用于维护已注册的电子邮件阵列 用户对象内的字段与任何帐户服务电子邮件一起更新 用户用于登录应用程序

因此,当您使用此软件包时,无论用户如何注册,您都将始终在
Meteor.user().registered_emails
Meteor.user().registered_emails[0]上使用此软件包。地址
现在应该可以使用了

更新:您必须将此信息发布到客户端。您可以在下面执行此操作,并在需要时订阅此信息,或者将
user
更改为
null
,它将自动为所有人发布此信息

Meteor.publish("user", function () {
  if (this.userId) {
    return Meteor.users.find({_id: this.userId}, {fields: {'registered_emails': 1}});
  } else {
    return [];
  };
});

你的
设置中有什么。json
?添加了你提到的包并更改了我的代码
“单击#mobileuser”:function(){var userEmail=Meteor.user().registed_emails[0]。address;alert(userEmail);}
,但结果仍然相同`@MaheshBabu添加此软件包后,您可以注销并重新登录吗?它工作的基础上登录回调也我猜你必须公布这个额外的信息,在客户端忘记了,我会更新答案