【问题标题】:Android: Parse beforesave to databaseAndroid:解析前保存到数据库
【发布时间】:2015-03-15 11:55:23
【问题描述】:

我要将记录保存到 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?这些基础知识让我苦恼了一个星期……非常感谢您提前提供的帮助。

【问题讨论】:

  • 不在我的电脑自动取款机上,但如果今晚没有提供答案,我会回复您。看起来你很接近。
  • 非常感谢您的帮助。找不到完整周期的文档,我真的很迷茫和惊讶!
  • 为 parse.com 辩护,本指南确实涵盖了在保存/删除 parse.com/docs/cloud_code_guide 时修改对象的主题
  • @pearmak 你把云代码放在哪里了?你是怎么把它和android联系起来的?

标签: android parse-platform before-save


【解决方案1】:

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

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

所以不要将方法命名为check_duplicate,而是使用类名Record_db,如下所示:

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

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

【讨论】:

  • 感谢您的指导和解释。这意味着beforeSave 每次上传到数据库时都会运行,它会自行运行,我们不需要启动它来运行吗?所以我只需要database.saveInBackground(); 它会自己运行吗?
  • 这就是这些方法的概念,没错。每次保存具有beforeSave 的类的对象时,它都会运行。
  • 这个答案涵盖了我想要的答案。正如我所见,“is-this-already-existing”查询应该可以正常工作。
猜你喜欢
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多