В моем приложении Parse есть коллекция GiftCode
, которая запрещает операцию find
на уровне класса.
Я пишу облачную функцию beforeSave
, которая предотвращает ввод повторяющихся кодов нашей командой с панели инструментов Parse:
Parse.Cloud.beforeSave('GiftCode', function (req, res) {
Parse.Cloud.useMasterKey();
const code = req.object.get('code');
if (!code) {
res.success();
} else {
const finalCode = code.toUpperCase().trim();
req.object.set('code', finalCode);
(new Parse.Query('GiftCode'))
.equalTo('code', finalCode)
.first()
.then((gift) => {
if (!gift) {
res.success();
} else {
res.error(`GiftCode with code=${finalCode} already exists (objectId=${gift.id})`);
}
}, (err) => {
console.error(err);
res.error(err);
});
}
});
Как видите, я звоню Parse.Cloud.useMasterKey()
(и это работает в облаке Parse), но все равно получаю следующую ошибку:
This user is not allowed to perform the find operation on GiftCode.
Я использую useMasterKey()
в других обычных облачных функциях и могу выполнять find
операций по мере необходимости.
useMasterKey()
не применимо к beforeSave
функциям?