У меня возникли проблемы с обновлением учетной записи пользователя. Я использую следующую схему (коллекция2):
библиотека/коллекции/users.js
Users = Meteor.users;
var Schemas = {};
Schemas.User = new SimpleSchema({
gender: {
type: Number,
min: 1
},
s_gender: {
type: Number,
min: 1,
optional:false
},
picture: {
type: String,
custom: function() {
var base64Matcher = new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$");
var value = this.value.replace("data:image/png;base64,","");
if(!base64Matcher.test(value))
{
return 'no picture';
}
else
{
return true;
}
}
}
});
Users.attachSchema(Schemas.User);
Теперь я делаю обновление со следующим кодом:
клиент/шаблоны/start.js
Users.update({_id: Meteor.userId()}, {
$set: {picture: picture, gender: gender, s_gender: s_gender}
}, {validationContext: "updateUser"}, function (error, result) {
if (error) {
errorObjs = Users.simpleSchema().namedContext("updateUser").invalidKeys();
console.log(errorObjs);
}
console.log(result);
});
Проверка проходит, но в результатах я получаю только "0" (ошибки нулевые) - обновление не работает. Ошибки отображаются, если у меня есть пустое поле, поэтому проверка работает хорошо. Если я отсоединяю схему, обновление работает нормально.
Я что-то забыл здесь или почему он не обновляется, когда проверка проходит?
// Редактировать: Также я вижу, что Meteor больше не создает пользователей.