簡體   English   中英

在流星發布功能中獲取用戶的電子郵件地址

[英]Getting user's email address in Meteor publish function

我有一個包含一組用戶電子郵件的收集組。 我需要在發布功能中訪問登錄用戶的電子郵件地址。 以下作品:

Meteor.publish("groups", function() {
  return Groups.find({emails: "hand_coded@email.com"}); 
});

這顯然是毫無用處的。 這些都不起作用:

  Meteor.user().emails[0].address
  this.user.emails[0].address
  this.userId.emails[0].address

在此處訪問用戶電子郵件地址的正確方法是什么?

您是否將subscribe功能放在反應性上下文中? 當尚未設置用戶時,可以首先調用publish函數,在這種情況下, this.user將為null 您應該在發布方法中進行檢查。 另外,根據文檔 ,只有this.userId參數可用,因此您需要自己獲取用戶對象:

Meteor.publish('groups', function() {
  if(!this.userId) return [];
  var user = Meteor.users.findOne(this.userId);
  ... /* use user.emails[0].address to search for and return the right groups */
});

另外,將您的訂閱函數包裝在一些反應式中:

Deps.autorun(function() {
  Meteor.subscribe('groups');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM