从android的Parse安装表中删除一行

从android的Parse安装表中删除一行,android,parse-platform,Android,Parse Platform,我已经设置了解析和推送通知,它工作得非常好 我试图实现的是删除包含旧“installationId”的行(安装实例)。当重新安装应用程序时,将生成一个新的installationId,并在我自己的服务器中保存新的installationId后,我希望android设备从parse db中删除包含旧id的行 我已经学习了两个教程: (一) (ii) 代码-(根据第1教程): 代码-根据解析文档: ParseObject.createWithoutData("Installation", "IHgT

我已经设置了解析和推送通知,它工作得非常好

我试图实现的是删除包含旧“installationId”的行(安装实例)。当重新安装应用程序时,将生成一个新的installationId,并在我自己的服务器中保存新的installationId后,我希望android设备从parse db中删除包含旧id的行

我已经学习了两个教程:

(一) (ii)

代码-(根据第1教程):

代码-根据解析文档:

ParseObject.createWithoutData("Installation", "IHgT4Gbszs").deleteEventually();
在这种情况下,没有例外,但该行不会被删除

我的目标是parse的“Installation”类。

更新

ParseQuery query=ParseInstallation.getQuery();
查询:whereEqualTo(“安装ID”,“9702fcb1-5912-43fa-9248-5F18BD39845”);
getFirstInBackground(新的GetCallback(){
@凌驾
公共void完成(ParseInstallation ParseInstallation,parsee异常){
试一试{
parseInstallation.delete();
parseInstallation.saveInBackground();
}捕获(解析异常){
例如printStackTrace();
}
}
});

这段代码运行没有问题,但是没有从parse server中删除条目。

我认为您需要使用
ParseInstallation.getQuery()
,而不是
ParseQuery.getQuery(“安装”)
您不允许这样做

这行代码:

ParseObject parseObject = ParseInstallation.getQuery().getFirst();
引发异常:

com.parse.ParseRequest$ParseRequestException: Clients aren't allowed to perform the find operation on the installation collection.

在我不太好的经验(wiith Parse)中,我看到需要时间来反映一些变化。这显然不能回答您的问题,但建议您尝试等待一段时间以显示更改,除非您已经有了。请记住!!但是现在没有机会了!您可以尝试使用回调进行保存(我希望它们仍然具有该函数)并记录事件。您将知道保存行/更新/删除的代码是否已成功完成。@Priyabrata您找到解决此问题的方法了吗?没有。我没有。我尝试的一切都失败了。我已经按照你的建议更新了代码。此操作无异常运行,但不会删除相应的条目。您发布的代码也不会在
GetCallback
中检查异常。在继续删除之前,应该检查该值是否为null,如果不为null,则记录错误。
ParseQuery<ParseInstallation> query = ParseInstallation.getQuery();
        query.whereEqualTo("installationId", "9702fcb1-5912-43fa-9248-5f18bd398485");
        query.getFirstInBackground(new GetCallback<ParseInstallation>() {
            @Override
            public void done(ParseInstallation parseInstallation, ParseException e) {
                try {
                    parseInstallation.delete();
                    parseInstallation.saveInBackground();
                }catch(ParseException ex){
                    ex.printStackTrace();
                }
            }
        });
ParseObject parseObject = ParseInstallation.getQuery().getFirst();
com.parse.ParseRequest$ParseRequestException: Clients aren't allowed to perform the find operation on the installation collection.