Parse начал отказывать в запросах с пустым "alert" в консоли разработчика
Я пытаюсь запустить миграцию в своем приложении Parse, и в настоящее время я пытаюсь запустить небольшой сценарий миграции (который должен занять меньше секунды). Однако, пока я пытаюсь запустить его (и пытаюсь разобраться с ошибками), мое приложение стало недоступным в течение нескольких минут. Когда я захожу в консоль разработчика, вот что я получаю:
Все запросы к моему приложению завершаются ошибкой в течение нескольких минут, все страницы приложения возвращают 404, а все команды на терминале задерживаются на несколько секунд, или даже около минуты.
Вот сценарий, который я пытаюсь выполнить (с мастер-ключом от cURL) (извините за явный язык в коде, это было просто быстрое исправление для меня):
Parse.Cloud.define("migratePosts", function(request, response){
var query = new Parse.Query("Posts");
query.find({success: function(results){
for (var i = results.length - 1; i >= results.length - 10; i--) {
var post = results[i];
if(!post.get("User")){
var userQuery = new Parse.Query("_User");
userQuery.equalTo("username", post.get("username"));
userQuery.find({
success:function(users){
var usr = users[0];
post.set("User", usr);
post.save(null, {
success: function(e){
console.log("saved " + post.get("User"));
},
error: function(o,e){
console.error("error " + e.code + ": " + e.message);
}
});
},
error:function(o,e){
console.log("fuck! " + e.code);
}
});
}
}
}, error:function(e){
console.log("more fuck! " + e.message);
}
});
});
При инициализации в app.js
, я вызываю использовать мастер-ключ (для запуска миграции):
Parse.initialize("my app key", "my js key");
Parse.Cloud.useMasterKey();
Когда я комментирую useMasterKey
, мое приложение снова начинает работать, но я по-прежнему (и не ожидаю этого) не могу запустить миграцию. Что же будет дальше? Я проверил ограничение скорости API, и я не сделал этого. превышать его. Как я могу выполнить миграцию, которая требует привилегий master?
1 ответ:
Как подсказывает префикс
Parse.Cloud
функцииuserMasterKey()
, он работает только в облачном коде синтаксического анализа.Вы в основном используете его, чтобы позволить облачной функции работать без ограничений, когда вам нужно, надеюсь, после того, как вы уверены, что доверяете вызывающему или что код не собирается ломать вещи.
В вашем случае вы бы добавили это к созданной Вами облачной функции, хотя это звучит так, как будто вы действительно должны создать облачную задачу для этого, поскольку она может превысить 15-секундный лимит, если ей нужно выполнить много работы.