パッケージが存在するかどうかMeteor.users
に関係なく、セキュリティ上の理由から、このコレクションへの書き込みはデフォルトで無効になっているため、コレクションを更新することはできません。insecure
ただし、この規則には 2 つの例外があります。
- クライアントは、新しいユーザー アカウントを作成できます。
- ログインしたユーザーは、プロファイルを更新できます。
{ $set: { 'profile.username': '' } }
ユーザーのドキュメントのさまざまなフィールドを本当に更新したい場合は、少なくとも 2 つの選択肢があります。
- サーバーでカスタム メソッドを作成します。サーバーへの書き込みは常に許可されます。
- 追加の
Meteor.users.allow
ルールを追加、こちらをご覧ください
より安全な最初のソリューションをお勧めします。
もう一つ。デフォルトでは、サーバーはコレクションから と を含むいくつかのフィールドのみを公開します。それらをさらに追加する予定があり、それらをブラウザで利用できるようにしたい場合は、カスタム公開機能を追加する必要があります。Meteor.users
emails
profile
Meteor.publish('myCustomField', function () {
return Meteor.users.find({ _id: this.userId },
{ fields: { myCustomField: 1 } });
});
そして、クライアント側でサブスクライブします。
Meteor.subscribe('myCustomField');