(クライアント側の両方で)ユーザーをログインする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()
オブジェクトの残りがサーバーから到着する前に、すでに有効な場合があります。みんな、ありがとう。