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
无法访问其他用户';Meteor应用程序中的电子邮件地址_Meteor - Fatal编程技术网

无法访问其他用户';Meteor应用程序中的电子邮件地址

无法访问其他用户';Meteor应用程序中的电子邮件地址,meteor,Meteor,在开始之前,我已经按照以下步骤进行了操作: 我还阅读了Meteor文档中关于发布用户以及如何添加比id、用户名和配置文件更多的字段的内容。尽管如此,我的处境依然存在 我正在尝试访问其他用户的电子邮件地址,而不仅仅是当前登录的用户。我有两个模板需要此访问权限。第一个模板可以工作并能够访问它。第二个模板无法创建 以下是我发布电子邮件字段和订阅的设置代码(我也尝试过不指定“地址”[例如字段:{emails:1}],但结果相同) 以下是模板中有效的代码: Template.createPartner.e

在开始之前,我已经按照以下步骤进行了操作:

我还阅读了Meteor文档中关于发布用户以及如何添加比id、用户名和配置文件更多的字段的内容。尽管如此,我的处境依然存在

我正在尝试访问其他用户的电子邮件地址,而不仅仅是当前登录的用户。我有两个模板需要此访问权限。第一个模板可以工作并能够访问它。第二个模板无法创建

以下是我发布电子邮件字段和订阅的设置代码(我也尝试过不指定“地址”[例如字段:{emails:1}],但结果相同)

以下是模板中有效的代码:

Template.createPartner.events({
    'click .setup-partner' : function(event, template) {
        var partner = Meteor.users.findOne({"emails.address": 'example@mail.com' }); <-- works
    }
});

为什么在第二个模板中我看不到用户的电子邮件地址,而在第一个模板中我可以看到?

我认为这是因为您订阅了两组相同的集合。Meteor使用第一个订阅,而忽略第二个订阅。但我不知道为什么有一次它能起作用

如果删除第一个订阅并使用第二个订阅,则基本上删除该行:

Meteor.subscribe("allUsers");
再来一个提示。您可以将电子邮件功能更改为:

Template.infoSelect.partner = function() {
    var partnerId = Meteor.user().profile.partnerId; <-- works
    var partner = Meteor.users.findOne({_id: partnerId}); <-- works but only _id and profile are returned
    return partner;
};
Template.infoSelect.partner=function(){

var partnerId=Meteor.user().profile.partnerId;我认为这是因为您订阅了两组相同的集合。Meteor使用第一个订阅,而忽略了第二个订阅。不过,我不确定为什么有一次它会起作用

如果删除第一个订阅并使用第二个订阅,则基本上删除该行:

Meteor.subscribe("allUsers");
还有一个提示。您可以将电子邮件功能更改为:

Template.infoSelect.partner = function() {
    var partnerId = Meteor.user().profile.partnerId; <-- works
    var partner = Meteor.users.findOne({_id: partnerId}); <-- works but only _id and profile are returned
    return partner;
};
Template.infoSelect.partner=function(){

var partnerId=Meteor.user().profile.partnerId;哦,是的,这是一个很好的提示,谢谢!但是,我已经尝试了你的第一个建议,即只订阅/发布一次,没有任何区别……哇!你的第二个建议成功了!我已经尝试了第一个,但当我改为使用第二个时,它成功了!你我的朋友,太棒了!我是你的同事NF用于创建一个名为“allUsers”的订阅。如果订阅名为“allUsers”,这不就是创建一个名为“allUsers”的Meteor集合吗?如果是,那么“allUsers”集合如何链接到Meteor.users集合?看起来,一旦创建了“allUsers”订阅之后,我应该对新的“诱惑者”进行mongo查询集合,而不是Meteor.users集合,但事实并非如此,所以有点混乱…请记住订阅名称和集合名称是两个不同的东西。如果您订阅了某个内容,该订阅的发布功能将发送该集合的副本。因此..Meteor.users和allUsers(通过上面的订阅)将包含相同的数据。要在视频中获得更好的解释,请查看:。DDP可能不太感兴趣,但其结构解释得很好。访问数组现在看起来像{partner.emails。[0]。address}},至少使用Meteor 1.0(对于像我一样通过谷歌搜索遇到此问题的人)哦,是的,这是一个很好的建议,谢谢!然而,我已经尝试了你的第一个建议,即只订阅/发布一次,这没有任何区别…哇!你的第二个建议成功了!我已经尝试了第一个,但当我改为使用第二个时,它成功了!你我的朋友,太棒了!我对创意感到困惑了g一个名为“allUsers”的订阅。如果订阅名为“allUsers”,这不就是创建了一个名为“allUsers”的Meteor集合吗?如果是,那么“allUsers”集合如何链接到Meteor.users集合?看起来,一旦创建了“allUsers”订阅,我就必须对新的“诱惑者“收藏,而不是Meteor.users收藏,但事实并非如此,因此有点混乱……请记住订阅名称和收藏名称是两个不同的东西。如果您订阅了某个内容,该订阅的发布功能将发送该收藏的副本。因此,..Meteor.users和allUsers(通过上面的订阅)将包含相同的数据。要在视频中获得更好的解释,请查看:。DDP可能不太感兴趣,但其结构解释得很好。访问数组现在看起来像{partner.emails。[0]。address}},至少使用Meteor 1.0(对于像我一样通过谷歌搜索遇到此问题的人)
Template.infoSelect.partner = function() {
    var partnerId = Meteor.user().profile.partnerId; <-- works
    var partner = Meteor.users.findOne({_id: partnerId}); <-- works but only _id and profile are returned
    return partner;
};
<template name="infoSelect">
{{partner.email.0.address}}
{{partner.profile.name}} <!--If you have configured profiles -->
</template>