解析云代码保存功能不起作用

时间:2015-12-16 18:58:30

标签: javascript android parse-platform cloud-code

我尝试在解析时实施重新发送电子邮件验证链接,我更新了我的用户电子邮件ID,我想再次触发电子邮件验证。但是,当我尝试使用管理员角色时,我无法保存该对象。我搜索和各种帖子但没有成功。

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 = "hemantsuthar20@gmail.com"; //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 with:输入:   {" user_find":" rahulsmarty"}结果:未定义

     

I2015-12-16T18:48:15.779Z]用户名:rahulsmarty

     

I2015-12-16T18:48:15.833Z]结果查找用户名rahulsmartyemail   ID:hemantsuthar20@gmail.com

     

I2015-12-16T18:48:15.836Z]别与我混淆

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

首先,使用已存在的内容更新电子邮件字段不会触发Parse上的电子邮件验证重发。您需要先使用不同的内容更新文件,然后使用原始电子邮件地址再次更新,以触发验证电子邮件。为此,我建议使用像用户objectId这样的唯一标识符来构建虚拟临时电子邮件地址,例如objectId@objectId.com。首先将其保存到该字段,然后使用原始电子邮件地址再次更新。

另外请记住,在Parse上保存对象时,需要等待该操作完成,然后才能在云代码中返回response.success()。解析save()函数是异步方法,这意味着当它返回时,其操作不一定完成。 异步方法返回Promise,您需要在返回response.success()response.error()之前等待履行此承诺。请务必阅读并理解Prase文档中Promise的概念:https://www.parse.com/docs/js/guide#promises