0

我要将记录保存到 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。我发现没有关于此类基本操作的教程或文档。

这样的 beforesave 是如何工作的,什么时候应该调用它???

能否请您告诉我如何在Android代码中编写检查重复(如果重复则不保存,如果是新记录,则保存到Parse DB)然后保存到Parse?这些基础知识让我坚持了一周,这真是令人绝望……非常感谢您提前提供的帮助。

4

1 回答 1

2

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

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

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

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

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

于 2015-03-15T13:38:18.437 回答