2015-01-11 3 views
2

Я пытаюсь удалить дублирующую установку при переустановке на android. Я делаю запрос от ParseInstallation, но он не работает.Удалить дублируемую установку на android parse.com

прилагаю мой код ниже:

public boolean checkDuplicate(String id, ParseInstallation installation){ 




    ParseQuery<ParseInstallation> query = ParseInstallation.getQuery(); 
    query.whereEqualTo("userId", id); 
    query.findInBackground(new FindCallback<ParseInstallation>() { 
     public void done(List<ParseInstallation> list, ParseException e) { 
      if (e == null) { 

       //Log.d("LISTA-CHECKDUPLICATE", "id " + list.size()); 
       for(int i = 0; i<list.size(); i++){ 
        try { 
         list.get(i).delete(); 
        } catch (ParseException e1) { 
         // TODO Auto-generated catch block 
         e1.printStackTrace(); 
        } 
       } 

      } else { 
       Log.d("LISTA-CHECKDUPLICATE", "Error: " + e.getMessage()); 
      } 
     } 
    }); 


    return false; 

} 
+0

Какие особенности поведения вы видите, что это неправильно? – nasch

+0

ничего не получает – gogoru

+0

Вы не можете найти таблицу установки операционной системы. вы получите исключение со следующим msg «Клиенты не могут выполнять операцию поиска в установочной коллекции». – Jeeri

ответ

2

Наконец я решил это с облаком кода и вызов функции андроида:

Parse.Cloud.define("checkDuplicado", function(request, response) { 
    Parse.Cloud.useMasterKey(); 
    var query = new Parse.Query(Parse.Installation); 
    var objectId = request.params.objectId; 
    query.equalTo("userId", request.params.userId); 
    query.first().then(function(duplicate) { 
     if (typeof duplicate === "undefined") { 
      console.log("Duplicate does not exist,New installation"); 
      response.success("Nueva Instalacion"); 
     } else if(duplicate.id != objectId){ 
      console.log("Duplicado existe..Intentando borrar " + duplicate.id); 
      //console.log("userId-NUEVO " + request.object.get("userId") + " ID: " + request.object.id); 
      // console.log("userId-DUPLICADO " + duplicate.get("userId") + " ID: "+ duplicate.id); 
      duplicate.destroy().then(function(duplicate) { 
       console.log("Duplicado borrado correctamente"); 
       response.success("Duplicado borrado correctamente"); 
      }, function() { 
       console.log(error.code + " " + error.message); 
       response.success("Error Borrando duplicado"); 
      }); 

      response.success("Check duplicados realizado correctamente"); 
     } 
     else{ 
      response.success("Check duplicados realizado correctamente"); 
     } 
    }, function(error) { 
     console.warn(error.code + error.message); 
     response.success("Error"); 
    }); 
    }); 
+0

Hwy, после использования этого, я смог удалить установку. Но с этим мой список каналов ушел. Как скопировать список каналов на новую установку перед удалением старого? –

+0

Это означает, что вы можете иметь только одного пользователя на устройство? – clauziere

+0

yes У меня есть только пользователь на устройство. и Palak Darji вы можете скопировать канал перед удалением, прочитать строку и скопировать значение. – gogoru

Смежные вопросы