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.

  • Analizar las notificaciones en android no funcionará
  • Recuperar una matriz de parse.com y agregar los valores a una matriz local (Android)
  • Subclase de JavaScript en Parse.com
  • ParseFacebookUtils Android auth_type: 'reautenticar'
  • Parse: ¿Cómo configurar un puntero en Android?
  • Cómo usar la API de inicio de sesión de Google con Cordova / Phonegap
  • Cómo guardar y retirar fotos y videos en Parse (Android)
  • Cómo deshacer una llamada ParseUser.setPassword ()?
  • 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.