2015-12-16 8 views
0

Я попытался внедрить повторно проверенную ссылку на проверку пароля, для которой я обновил идентификатор моего пользователя по электронной почте с помощью существующего, который, я думаю, снова вызывает проверку электронной почты. Но когда я попытался сделать это с помощью роли администратора, я не смог сохранить объект. Я ищу и разные должности, но не успел.Parse Cloud Code Функция сохранения не работает

Облако код: -

Parse.Cloud.define("resend_email_verification_link", function(request, response) { 

Parse.Cloud.useMasterKey(); 
console.log("User name:" + request.params.user_find); 
var user_name = request.params.user_find; 

var mail_user = Parse.Object.extend("User"); 
var user_save = new mail_user(); 

var query_user = new Parse.Query(user_save); 
query_user.equalTo('username', user_name); 
query_user.find ({ 
    success: function(results) 
    { 
     if (results.length > 0) 
     { 
      var email_user = "[email protected]"; //results[0].get("email"); 
      //var email_user = results[0].get("email"); 
      console.log("Reults find for user name "+ user_name + "email Id:" + email_user); 

      results[0].set("email", email_user); 

      results[0].save(null, { 
       success:function() { 
       console.log("Successfully saved"); 
      }, 
       error:function (error) { 
       console.log("Could not save" + error.message); 
       } 
      }); 

      console.log("Dont mess with me "); 
      response.success(); 
     } else { 
      response.error("No User Exists"); 
     } 
    }, 
    error: function(error) { 
     response.error("Query Failed.Error = "+ error.message); 
    } 
}); 
}); 

Журналы: -

I2015-12-16T18: 48: 15.750Z] V58 Ран функция облака resend_email_verification_link с: Input: { "user_find" : "rahulsmarty"} Результат: не определено

I2015-12-16T18: 48: 15.779Z] имя пользователя: rahulsmarty

I2015-12-16T18: 48: 15.833Z] Reults найти для имени пользователя rahulsmartyemail Id: [email protected]

I2015-12-16T18: 48: 15.836Z] не перепутать со мной

Пожалуйста, помогите мне в решении этой проблемы.

ответ

0

Прежде всего, обновление поля электронной почты с тем, что уже существует, НЕ приведет к повторной отправке подтверждения по электронной почте в Parse. Сначала вам необходимо обновить файл с чем-то другим, а затем снова обновить его с помощью исходного адреса электронной почты, чтобы вызвать электронное письмо с подтверждением. Для этого я предлагаю использовать уникальный идентификатор, такой как пользователь objectId, для создания временного адреса электронной почты, например [email protected]. Сохраните это сначала в поле, а затем обновите его с помощью исходного адреса электронной почты.

Также имейте в виду, что когда вы сохраняете объект в Parse, вам нужно дождаться завершения этой операции, прежде чем возвращать response.success() в ваш код облака. Parse save() function is асинхронный метод, который означает, что когда он возвращается, его операция НЕ обязательно завершена. Асинхронный метод возвращает обещание, и вам нужно дождаться выполнения этого обещания перед возвратом response.success() или response.error(). Обязательно ознакомьтесь с концепцией документации Promise in Prase: https://www.parse.com/docs/js/guide#promises