Я использую Node.js и back4app.com
Я пытаюсь обновить объект пользователя. Поэтому я много читал и нашел эту перспективную документацию :
let progressId = "xyz";
let userId = "12354"; //aka objectId
const User = new Parse.User();
const query = new Parse.Query(User);
// Finds the user by its ID
query.get(userId).then((user) => {
// Updates the data we want
user.set('progressId', progressId);
// Saves the user with the updated data
user.save()
.then((response) => {
console.log('Updated user', response);
})
.catch((error) => {
console.error('Error while updating user', error);
});
});
Но есть и предупреждение. В нем говорится:
Класс Parse.User защищен по умолчанию, вы не можете вызвать метод save
, если Parse.User не был получен с использованием аутентифицированного метода, такого как logIn
, signUp
или current
Как бы это выглядело в коде?
Мое решение
Ну, я получил его на работу. Пока я разобрался, я нашел несколько маленьких выставочных пробок. Я перечисляю это для всех, кого это может касаться.
Спасибо @RamosCharles. Я добавил Мастер Ключ в Parse._initialize. Только с этим .save (null, {useMasterKey: true}) работает. Обратите внимание, без нуля это также не будет работать.
Это мой рабочий код:
let progressId = "xyz";
const User = Parse.Object.extend('User'); //instead of const User = new Parse.User();
const query = new Parse.Query(User);
query.equalTo("objectId", '123xyz');
query.get(userId).then((userObj) => {
// Updates the data we want
userObj.set('progressId', progressId);
// Saves the user with the updated data
userObj.save(null, {useMasterKey: true}).then((response) => {
console.log('Updated user', response);
}).catch((error) => {
console.error('Error while updating user', error);
});
});
Теперь мне интересно
почемумой рабочий код отличается от документации ?
Насколько безопасен мой код? И что нужно сделать, чтобы сделать его более безопасным?