Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Consulta en ParseObject

Estoy tratando de obtener un objeto con una consulta de análisis.

Este es mi código:

ParseQuery<ParseObject> query = ParseQuery.getQuery("Conference"); query.findInBackground(new FindCallback<ParseObject>() { public void done(List<ParseObject> results, ParseException e) { if (e == null) { // Results were successfully found from the local datastore. } else { showLog(e.toString()); } } }); 

Consigo este error:

Com.parse.ParseException: java.lang.IllegalStateException: ParseObject no tiene datos para 'objectId'. Llame a fetchIfNeeded () para obtener los datos.

BTW mi clase de Conference contiene punteros.

5 Solutions collect form web for “Consulta en ParseObject”

Si está consultando directamente desde Parse, puede hacer lo siguiente:

 ParseQuery<ParseObject> query = ParseQuery.getQuery("Conference"); ... query.include("name_of_the_column_containing_a_pointer"); query.include("another_pointer_column"); query.findInBackground(new FindCallback<ParseObject>() { public void done(List<ParseObject> results, ParseException e) { if (e == null) { // You can now access the pointers specified in the include } else { showLog(e.toString()); } } }); 

De lo contrario, si está consultando el almacén de datos local:

 ParseQuery<ParseObject> query = ParseQuery.getQuery("Conference"); ... query.findInBackground(new FindCallback<ParseObject>() { public void done(List<ParseObject> results, ParseException e) { if (e == null) { ParseObject parseObject = results.get(0); // Get the object parseObject.fetchIfNeededInBackground(new GetCallback<ParseObject>() { public void done(ParseObject result, ParseException e) { if (e == null) // Do something with result } } } else { showLog(e.toString()); } } }); 

Hola @ Jürgen He podido obtener la cadena objectId usando una de las siguientes maneras:

 String id = ParseUser.getCurrentUser().getObjectId(); 

Dentro de la función Findcallback done .

Una segunda forma – también en la función done() de findCallBack donde se denomina los datos devueltos

 objects.objects.get(0).getObjectId(); 

Aquí hay una tercera vía. La clave principal aquí es configurar su ParseObject como una variable final para que pueda referirse a ella en su método done() .

 final ParseObject po = new ParseObject("Test"); po.put("username", temp.getUserName()); po.saveInBackground(new SaveCallback() { public void done(ParseException e) { if (e == null) { String id = po.getObjectId(); Log.d(TAG, "The object id is: " + id); } else { // The save failed. Log.d(TAG, "User update error: " + e); } } }); 

Espero que esto te ayude.

Yo tuve el mismo problema. El problema fue que sobrepasé el método getObjectId en mis implementaciones de ParseObject :

 @ParseClassName("MyOwnParseClass") public class MyOwnParseClassextends ParseObject { public static ParseQuery<MyOwnParseClass> getQuery() { return ParseQuery.getQuery(MyOwnParseClass.class); } public String getObjectId() { return getString("objectId"); } public String getName() { return getString("name"); } public void setName(String name) { put("name", name); } } 

Pero ParseObject ya tiene un método getObjectId() y utiliza

 return getString("objectId"); 

No devuelve el objectId .

Prueba este código

 ParseQuery<ParseObject> query = ParseQuery.getQuery("MyClass"); ParseUser user = ParseUser.getCurrentUser(); query.whereEqualTo("owners", user); query.findInBackground(new FindCallback<ParseObject>() { @Override public void done(List<ParseObject> objects, com.parse.ParseException e) { if (e == null) { for (ParseObject parseObject : objects){ String task; task= parseObject.get("owners").toString(); adapter.add(task); adapter.notifyDataSetChanged(); } } else { // Something went wrong. Toast.makeText(getActivity(),"Error: " + e.getMessage().toString(),Toast.LENGTH_SHORT).show(); } } }); 
 ParseQuery<ParseObject> queryP = ParseQuery.getQuery("Courses"); queryP.whereEqualTo("Student", nameStudent); queryP.findInBackground(new FindCallback<ParseObject>() { @Override public void done(List<ParseObject> coursesList, ParseException e) { ArrayList<String> courses = null; if (e == null) { courses = new ArrayList<String>(); for (ParseObject course : coursesList) { String courseName = course.getString("CoursesNameInParseColumn"); courses.add(courseName); } } else { Log.d("Post retrieval", "Error: " + e.getMessage()); } populateCoursesList(courses); } }); 

probar esto

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.