Meteor.user () возвращает только свой _id
После входа пользователя сMeteor.loginWithPassword()
или создание нового сAccounts.createUser
(обе стороны клиента), я могу подтвердить в их обратных вызовах, чтоMeteor.user()
действительно содержит все установленные записисвойства.
{ _id: "XXX",
profile: {
name: "Joe Shmoe",
thumbnail: "http://www.YYY.com/ZZZ.jpg"
},
username: "joeshmoe" }
Кроме того, согласноофициальные документы,
По умолчанию текущий пользовательИмя пользователя, электронные письма и профиль публикуются для клиента.
Итак, кто-нибудь сможет сказать, почему, когда я пытаюсь получить доступ к этим полям в моих шаблонах таким образом
Template.login.user_name = function () {
return (Meteor.userId() ? Meteor.user().profile.name : '')
};
это терпит неудачу из-заMeteor.user()
только возвращаясь{_id: "XXX"}
ни с одним из его реальных свойств? То есть пользователь определенно вошел в систему, но пользовательский объект внезапно потерял / скрывает все свои свойства.
Кто-нибудь знает, в чем может быть проблема?
Большое спасибо.
РЕДАКТИРОВАТЬ: это происходит с Meteor 0.5.4, последней версией на момент написания статьи. Принятый ответ действительно решает проблему; иногдаMeteor.userId()
уже действует до того, как остальная часть Объекта поступила с сервера. Спасибо всем.