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 2

1 ответ:

Как подсказывает префикс Parse.Cloud функции userMasterKey(), он работает только в облачном коде синтаксического анализа.

Вы в основном используете его, чтобы позволить облачной функции работать без ограничений, когда вам нужно, надеюсь, после того, как вы уверены, что доверяете вызывающему или что код не собирается ломать вещи.

В вашем случае вы бы добавили это к созданной Вами облачной функции, хотя это звучит так, как будто вы действительно должны создать облачную задачу для этого, поскольку она может превысить 15-секундный лимит, если ей нужно выполнить много работы.