Android:解析之前保存到数据库

时间:2015-03-15 11:55:23

标签: android parse-platform before-save

我要将记录保存到Parse数据库。

保存到解析:

    ParseObject database = null;
    database = new ParseObject("Record_db");
    database.put("period_ref",  current1_draw_ref_I);
    database.put("remark",          "na");
    database.put("publishing",      "publishing");
    database.saveInBackground();

Cloud Code:

Parse.Cloud.beforeSave("check_duplicate", function(request, response) 
{
    var DB = Parse.Object.extend("Record_db"); 
    var query = new Parse.Query(DB);
        query.equalTo("period_ref", request.object.get("period_ref"));
        query.first
        ({
      success: function(object) 
    {
            if (object) 
        {
                response.error("A Period with this ref already exists.");
            } 
        else
        {
                response.success();
            }
      },
      error: function(error) 
    {
        response.error("Could not validate uniqueness for this period ref object.");
        }
    });  
});

问题:

记录可以保存到Record_db数据库。但我不知道如何连接和调用“check_duplicate”云函数来检查重复的beforeSave。我发现没有关于这些基本操作的教程或文档。

这样的beforesave如何工作以及何时应该调用???

请您告诉我如何在Android代码中写入以检查重复(如果是重复则不保存,如果是新记录,则保存到Parse DB)然后保存到Parse?这个基础知识让我感到困惑了一个星期,这是非常绝望的......非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您与实现非常接近,但是,before* / after*方法要求参数是应该运行代码的实际类名,而不是随机方法名称。

beforeSaveafterSavebeforeDeleteafterDelete,一旦保存了函数定义中定义的类的对象,就会被Parse自动调用。

因此,不要命名方法check_duplicate,而是使用类名Record_db,如下所示:

Parse.Cloud.beforeSave("Record_db", function(request, response) {
    //... your code ...
});

另请注意,这些方法在每次保存时运行,而不仅仅是在创建对象时,您可以使用request.object.isNew()检查保存的对象是新的还是已存在。< / p>