Android:在Parse中使用Parse数据库以获得IncrementKey列

Android:在Parse中使用Parse数据库以获得IncrementKey列,android,database,parse-platform,cloud,auto-increment,Android,Database,Parse Platform,Cloud,Auto Increment,我正在开发一个Android应用程序,正在使用Parse Database,并希望添加一个IncrementKey函数,以便在向数据库添加新图像时,图像id列将自身增加1 参考: 问题: 然而,谷歌搜索了很长一段时间,没有明确的例子来说明如何让它工作。。。它涉及到解析时的云代码。有没有关于如何做到这一点的提示 谢谢 为图像创建beforeSave触发器(如果相关,请替换,我假设这是您的类,它保存图像和计数器列-这些是同一对象的属性) 文件:/cloud\u code/cloud/main.js或

我正在开发一个Android应用程序,正在使用Parse Database,并希望添加一个
IncrementKey
函数,以便在向数据库添加新图像时,图像id列将自身增加1

参考:

问题: 然而,谷歌搜索了很长一段时间,没有明确的例子来说明如何让它工作。。。它涉及到解析时的云代码。有没有关于如何做到这一点的提示


谢谢

图像
创建beforeSave触发器(如果相关,请替换,我假设这是您的类,它保存图像和计数器列-这些是同一对象的属性)

文件:
/cloud\u code/cloud/main.js
或文件路径
需要
d by main.js

资源
  • 云代码指南:
  • 保存修改前的云代码:
  • 检索对象:
  • 增量(更新现有字段):
  • 另请参见(另一种方式)
阅读《云代码指南》,了解如何安装CLI工具来部署云代码,并检查云日志以进行调试

  • 免责声明:以上代码未经测试,但基于工作函数

注意:
保存前处理程序中使用
isNew()
,在
保存后处理程序中使用
已存在的
。在解析云代码版本1.6.*中存在一个报告的
错误
——请参阅云代码易于实现。问题是什么?我完全不知道…你有一些例子吗?他们有一个指南可以帮助你。它基本上是JavaScript代码。你可以从中获得大量教程。请注意,解析对象具有唯一的id,id为
objectId
image.id
。云代码函数在调用
response.success
时保存,普通控制器应使用
imageCounts.save()
您可以使用
imageCounts.increment(“image\u count”)
Parse.Cloud.beforeSave("Image", function(request, response) {

    //check if this is a new or existing Image
    if (!request.object.isNew()) {
          //image exists, save as normal
          response.success();
    } else { 

        //find the last image saved
        var checkImage = Parse.Object.extend("Image");
        var imagesQuery = new Parse.Query(checkImage);
        imagesQuery.select("image_id"); //save memory by only requesting image_id
        imagesQuery.descending("image_id"); //sort, make sure image_id is a Number

        imagesQuery.first().then(
            function(lastImage) {
                //increase the id by 1
                var newId = lastImage.get("image_id") + 1;

                //save the current object with the new id
                request.object.set("image_id", newId); 
                response.success(); //this saves your request.object
            }, 
            function (error)
                response.error(error);
            }
        );

    }

});