アカウント作成、フィールドの公開、およびそのパブリケーションへの登録にユーザのカスタムフィールドを追加していますが、クライアント側ではMeteor.user().customField
にアクセスできません。 meteor mongo
から、私は、ユーザーが、私が追加された新しいカスタムフィールドを持っている作成していることを確認、その後Meteor.user()はクライアントにカスタムフィールドを表示していません
import { Random } from 'meteor/random'
Accounts.onCreateUser((options, user) => {
const cond = assignUserCondition();
user.enterTime= new Date();
user.page = null;
user.passedQuiz= false;
user.exitStatus=null;
user.quizAttempts= 0;
user.condition= cond;
user.avatar= null;
user.score= 0;
user.bonus= 0;
user.lobbyTimeout= LOBBY_TIMEOUT;
user.gameId= null;
user.condInfo = {name: cond,
groupSize: (cond+'GROUPS_SIZE').split('.').reduce((o, i) => o[i], CONDITIONS_SETTINGS),
bonusConversion: (cond+'BONUS_CONVERSION').split('.').reduce((o, i) => o[i], CONDITIONS_SETTINGS),
N_ROUNDS: (cond+'N_ROUNDS').split('.').reduce((o, i) => o[i], CONDITIONS_SETTINGS),
};
return user;
});
:
は、だから私のimports/api/users/users.js
に私は次のコードを追加します。さて、imports/api/users/server/publications.js
に私は次のコードを持っている:
Tracker.autorun(function(){
Meteor.subscribe('users.user');
});
ただし、クライアント側では、console.log(Meteor.user())
のみいかなるなし_id
とusername
を示しています
import {Meteor} from 'meteor/meteor'
Meteor.publish('users.user', function(currentUser) {
let user= Meteor.users.find({_id:currentUser}, {
fields: {
_id: 1,
enterTime: 1,
page: 1,
passedQuiz: 1,
exitStatus: 1,
quizAttempts:1,
condition:1,
avatar: 1,
score:1,
bonus: 1,
lobbyTimeout: 1,
gameId: 1,
conditionInfo: 1
}
});
if (user) {
return user;
}
return this.ready();
});
また、私のimports/startup/client/index.js
に私は、サブスクリプションを持っています私のカスタムフィールドの。
これで解決しました – amaatouq