未删除分析对象(Android)
我试图从parse.com类“GameScore”中删除一个对象,其中playerName等于当前玩家名称。我正在成功检索对象,但deleteInBackground函数不适用于我。(对象未从parse.com类中删除。我是parse和android新手。请任何人提供帮助未删除分析对象(Android),android,parse-platform,Android,Parse Platform,我试图从parse.com类“GameScore”中删除一个对象,其中playerName等于当前玩家名称。我正在成功检索对象,但deleteInBackground函数不适用于我。(对象未从parse.com类中删除。我是parse和android新手。请任何人提供帮助 holder.deleteitem.setOnClickListener(new View.OnClickListener() { @Override public void onClick(
holder.deleteitem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//String myname = worldpopulationlist.get(position).getName();
ParseQuery<ParseObject> query = ParseQuery.getQuery("GameScore");
query.whereEqualTo("playerName", worldpopulationlist.get(position).getName());
query.getFirstInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
// TODO Auto-generated method stub
if (object == null) {
Toast.makeText(context," not found",
Toast.LENGTH_SHORT).show();
} else {
object1.deleteInBackground(new DeleteCallback() {
public void done(ParseException e) {
if (e == null) {
Toast.makeText(context," deleted",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context," not deleted",
Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
});
}
}
});
Intent intent = new Intent(context, MainActivity.class);
intent.setFlags( Intent.FLAG_ACTIVITY_NO_HISTORY);
context.startActivity(intent);
}
});
可能是
deleteInBackground()
返回了一个错误,或者(不确定Android处理这个问题的方式)它在执行删除之前被垃圾收集
考虑向删除添加回调以至少记录删除的成功/错误。可能是
deleteInBackground()
正在返回错误,或者(不确定Android处理此问题的方式)在执行删除之前正在进行垃圾收集
考虑向删除添加回调,以至少记录删除的成功/错误。我遇到了类似的问题,我的问题是解析ACL权限 在最初创建对象的类(而不是要删除对象的类)中设置写入权限,如下所示:
ParseACL defaultACL = new ParseACL();
defaultACL.setPublicReadAccess(true);
defaultACL.setPublicWriteAccess(true); //objects created are writable
ParseACL.setDefaultACL(defaultACL, true);
我有一个类似的问题,我的问题是解析ACL权限 在最初创建对象的类(而不是要删除对象的类)中设置写入权限,如下所示:
ParseACL defaultACL = new ParseACL();
defaultACL.setPublicReadAccess(true);
defaultACL.setPublicWriteAccess(true); //objects created are writable
ParseACL.setDefaultACL(defaultACL, true);
您是否收到错误?是否显示“未找到”消息?@TimothyWalters否,我没有收到任何错误。它显示已删除。但对象未被删除。您是否收到错误?是否显示“未找到”显示消息?@TimothyWalters否,我没有收到任何错误。它显示已删除。但对象未被删除。我添加了回调,现在它显示未删除。`object.deleteInBackground(new DeleteCallback(){public void done(ParseException e){if(e==null){Toast.makeText(上下文,“已删除”,Toast.LENGTH_SHORT).show();}其他{Toast.makeText(上下文,“未删除”,Toast.LENGTH_SHORT).show();});`请将该代码添加到您的问题中,作为原始问题下方的编辑,同时尝试记录异常的内容,因为您现在知道,在尝试删除时,解析会出错。我已更新了日志cat,请查看一次。日志的第一行显示找不到对象,但当我使用object.getObjectId()时方法。它返回对象的正确objectId。现在我了解了问题所在。它与用户权限有关。用户只能删除自己的上载。但是,我已将权限设置为“任何用户都可以执行此操作”但它仍然不允许其他用户删除。这是该类的默认设置,但它也会考虑任何ACL,因此如果您在使用的对象上设置了ACL,则可以使用使用主键的云函数来解决此问题。我添加了回调,现在它显示为not deleted。`object.deleteInBackground(new DeleteCallback(){public void done(ParseException e){if(e==null){Toast.makeText(上下文,“已删除”,Toast.LENGTH_SHORT).show();}else{Toast.makeText(上下文,“未删除”),Toast.LENGTH_SHORT).show();});`请将该代码添加到您的问题中,作为原始问题下方的编辑,同时尝试记录异常的内容,因为您现在知道,在尝试删除时,解析会出错。我已更新了日志cat,请查看一次。日志的第一行显示找不到对象,但当我使用object.getObjectId()时方法。它返回对象的正确objectId。现在我了解了问题所在。它与用户权限有关。用户只能删除自己的上载。但是,我已将权限设置为“任何用户都可以执行此操作”但它仍然不允许其他用户删除。这是该类的默认设置,但它也会考虑任何ACL,因此,如果您在所使用的对象上设置了ACL,则可以使用使用使用主密钥的云函数来解决此问题。谢谢。我用另一种方法解决了此问题。我使用云代码来设置其创建对象时使用ACL。谢谢。我用另一种方法解决了这个问题。我在创建对象时使用了云代码来设置其ACL。