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

Android: Parse beforesave to database

我要将记录保存到 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();

云代码:

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 如何工作以及何时调用???

请问在Android代码中如何写检查重复项(如果重复则不保存,如果是新记录则保存到Parse DB)然后保存到Parse ?这个基础让我困了一个星期,真是太绝望了……非常感谢你提前的帮助。

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

beforeSaveafterSavebeforeDeleteafterDelete,一旦函数定义中定义的 class 对象为已保存。

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

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

另请注意,这些方法运行在保存时,而不仅仅是在对象创建时,您可以使用request.object.isNew()检查对象是否存在被保存的是新的或已经存在的。