我要将记录保存到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?这个基础知识让我感到困惑了一个星期,这是非常绝望的......非常感谢你的帮助。
答案 0 :(得分:2)
您与实现非常接近,但是,before*
/ after*
方法要求参数是应该运行代码的实际类名,而不是随机方法名称。
beforeSave
,afterSave
和beforeDelete
,afterDelete
,一旦保存了函数定义中定义的类的对象,就会被Parse自动调用。
因此,不要命名方法check_duplicate
,而是使用类名Record_db
,如下所示:
Parse.Cloud.beforeSave("Record_db", function(request, response) {
//... your code ...
});
另请注意,这些方法在每次保存时运行,而不仅仅是在创建对象时,您可以使用request.object.isNew()
检查保存的对象是新的还是已存在。< / p>