SimpleSchema は大きな一般的な問題を解決しますが、私は時々混乱します。
たとえば、次の値が定義されています。
changedPassword: {
type: Boolean,
optional: true
}
ユーザーがパスワードを変更したかどうかを追跡し、明らかに または のいずれかである必要がありtrue
ますfalse
。ただし、SimpleSchema は、その意味について私の見解を共有していないようですBoolean
。
とにかく、changedPassword
誰かがユーザーを作成するとまったく存在しない状態になりtrue
、パスワードを変更すると設定されます。false
パスワードのリセットを行っているときに問題が発生し、値が再び存在しないか、元に戻るはずです。SimpleSchema では、このフィールドを!に設定する以外は変更できないようです。true
私の方法は次のようになります。
changedPassword: function(status) {
if (status === false) {
Meteor.users.update({_id: Meteor.userId()}, {$unset: {changedPassword: ''}})
}
}
また
changedPassword: function(status) {
if (status === false) {
Meteor.users.update({_id: Meteor.userId()}, {$set: {changedPassword: false}}
}
}
Meteor.call('changedPassword', false)
しかし、ログインしてコンソールに入力しても、実際には変更されません。
その目的は何ですか、どうすればそれを回避できますか?