没有得到我从解析中获取的解析对象列表

Not getting list of parse object I am fetching from parse

我正在使用此代码从解析云中获取一行,但每次我获取对象时它都会给我空列表,尽管在解析中有一个相应的行可用,我正在尝试查找和更新。

      public void onClick(View v) {
      ParseQuery<ParseObject> query = ParseQuery.getQuery("StudentInfo");
      query.whereEqualTo("rollnum",rollnum.getText().toString());
      query.whereEqualTo("name",name.getText().toString());
      query.whereEqualTo("city",city.getText().toString());
      query.findInBackground(new FindCallback<ParseObject>() {
      @Override
      public void done(List<ParseObject> objects, ParseException e) {

                    if(e == null && objects.size() > 0){
                    obj=objects.get(0);
                    obj.put("rollnum",rollnum.getText()
                            .toString());
                    obj.put("name",name.getText().toString());
                    obj.put("city", city.getText().toString());
                    obj.saveInBackground();
                   }
                    else if(objects.size()==0){
                  Toast.makeText(getApplicationContext(), "No relation     Found!"+e,Toast.LENGTH_LONG).show();
                   }

                }
              }

如果对象在那里,我将在 put method.But 的帮助下用新值更新它,它总是给我一个空的解析对象列表。

我认为你正在尝试更新可用的 objects.You 可以这样做。

  public void onClick(View v) {
  ParseQuery<ParseObject> query = ParseQuery.getQuery("StudentInfo");
  query.whereEqualTo("rollnum",rollnum.getText().toString());
  query.whereEqualTo("name",name.getText().toString());
  query.whereEqualTo("city",city.getText().toString());
  query.findInBackground(new FindCallback<ParseObject>() {
  @Override
  public void done(List<ParseObject> objects, ParseException e) {

                if(e == null ){
                if(object.size()==0){
              //here you can put object with help of put method if object is not there and when the object size is greater than 1 you remove the other objects except the objects.get(0).All other objects except one will be removed and only the zeroth object will be updated at the time user updates it
                 } 
                else if( objects.size() > 0){
                obj=objects.get(0);
                obj.put("rollnum",rollnum.getText()
                        .toString());
                obj.put("name",name.getText().toString());
                obj.put("city", city.getText().toString());
                obj.saveInBackground();
               }
             }
            else{
                  //exception in getting data
             }

            }
          }

如果您得到一个空的对象列表,则意味着没有存储与您查询的条件相匹配的对象。

确保您理解您的查询。您设置查询的方式必须存储一个 ParseObject,其中 rollnum、name 和 city 等于您正在测试的那些值,并且它们必须完全相等。如果没有对象符合该条件,则解析将 return 一个空列表。使用 Logcat 和 Parse Dashboard 调试并找出您的查询有什么问题。