2015-01-11 26 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

你找不到操作安裝表。您將通過以下消息得到異常「客戶端不允許在安裝集合上執行查找操作。」 – Jeeri

回答

2

最後我解決了這個雲的代碼,調用在Android這樣的功能:

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

高速公路,使用後,我能夠刪除安裝。但有了它,我的頻道列表已經消失。如何在刪除舊版本之前將頻道列表複製到新安裝? –

+0

這意味着每個設備只能有一個用戶嗎? – clauziere

+0

是的我每個設備只有用戶。而Palak Darji則可以在刪除之前複製頻道,讀取該行並複製該值。 – gogoru