2015-11-26 3 views
0

Ive получил приложение на Android, которое должно работать без Интернета и с помощью базы данных анализа, когда включен интернет. Также я столкнулся с проблемой получения закрепленного ParseObject, который ранее не был сохранен в онлайн-базе данных.Parse: как получить закрепленный объект без id

Так что я делаю:

ParseObject car = new ParseObject("cat"); 
cat.put("name","Pussy"); 
cat.pinInBackground(); 

Итак, теперь я хочу, чтобы получить эту кошку запрос с query.getInBackground, но я не могу это сделать, потому что я не имею ObjectId, который автоматически генерируется только после сохранения в онлайн-базе данных.

ответ

1

Вы можете искать для кошек (объектов) с заданными свойствами в локальном хранилище:

ParseQuery<ParseObject> query = ParseQuery.getQuery("cat"); 
query.fromLocalDatastore(); 
query.whereEqualTo("name", "Pussy"); 
query.findInBackground(new FindCallback<ParseObject>() { 
    public void done(List<ParseObject> catList, ParseException e) { 
     if (e == null) { 
      Log.d("cat", "Retrieved " + catList.size() + " cats"); 
     } else { 
      Log.d("cat", "Error: " + e.getMessage()); 
     } 
    } 
}); 

Однако, если name является единственным свойством, вы, вероятно, получить список объектов с более чем одной записи , Здесь вы можете добавить другие свойства (например, владельца), чтобы ограничить количество возможных совпадений.

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