从Parse Table中删除一行

Sre*_*non 4 android parse-platform

我有一个名为Favorite tags的表.它有字段 - 标签,用户(指针分配用户objectid).where用户可以存储标签,并与用户对象一起作为用户字段中的指针,用户从收藏夹中删除标签

对于存储/更新:它工作正常.

           ParseObject favtagobject = new ParseObject("Favourite");
            favtagobject.put("Tag", "#" + keyword);
                favtagobject.put("User", ParseUser.getCurrentUser());
                favtagobject.saveInBackground();
Run Code Online (Sandbox Code Playgroud)

从表中删除/删除标记:下面的代码不起作用

           ParseObject favtagobject = new ParseObject("Favourite");
             favtagobject.put("Tag", "#" + keyword);
                favtagobject.put("User", ParseUser.getCurrentUser());
                favtagobject.deleteInBackground(new DeleteCallback() {

                    @Override
                    public void done(com.parse.ParseException arg0) {
                        // TODO Auto-generated method stub
                        System.out.println("deleted the tag succesfully");
                    }
                });
Run Code Online (Sandbox Code Playgroud)

我想从表中删除一行我知道要删除哪一行.请帮帮我.

Bar*_*ter 6

基本上,当你使用'new ParseObject("Favorite")时; 它将构造一个新的ParseObject.在您调用任何.save()变体之前,数据库中不存在此parseObject.因此,当你这样做

    ParseObject favtagobject = new ParseObject("Favourite");
         favtagobject.put("Tag", "#" + keyword);
            favtagobject.put("User", ParseUser.getCurrentUser());
            favtagobject.deleteInBackground(new DeleteCallback() {

                @Override
                public void done(com.parse.ParseException arg0) {
                    // TODO Auto-generated method stub
                    System.out.println("deleted the tag succesfully");
                }
            });
Run Code Online (Sandbox Code Playgroud)

您所做的只是创建一个新对象,数据库中不存在然后尝试删除它?您正在寻找的是这个

    ParseQuery<ParseObject> query = ParseQuery.getQuery("Favourite");
    query.whereEqualTo("Tag", "#" + keyword);
    query.whereEqualTo("User", ParseUser.getCurrentUser());
    query.getFirstInBackground(new FindCallBack() {

            @Override
            public void done(ParseObject object, com.parse.ParseException arg0) {
               // TODO Auto-generated method stub
                   object.delete();
                   object.saveInBackground();
            }
        }););
Run Code Online (Sandbox Code Playgroud)

这将首先从数据库中获取对象,然后从表中删除该行并保存对该对象所做的更改!