Consulta en ParseObject
Estoy tratando de obtener un objeto con una consulta de análisis.
Este es mi código:
- Parse.com obteniendo todos los nombres de usuario
- OUTDATED DEVICE: Notificación de Parse Push a dispositivos Android
- ParseObject pinInBackground devolver null objectId
- Parse.com, Parse SDK descarga NO Archivo Parse-1.10.3.jar en el SDK
- Recyclerview Adaptador y Glide - misma imagen cada 4-5 filas
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.
- ¿Cómo crear una cuenta de usuario _segmentar desde un token de Google para Android?
- Tienen menú sólo aparecen en la barra de acción si ParseUser está viendo su propia publicación
- Convertir el número en doble
- Android ParseQueryAdapter notifyDataSetChanged no funciona
- ¿Cómo analizar enviar push sin registro de gcm?
- Facebook SDK: invalide alcance: información básica use public_profile, amigos de usuario en su lugar
- ParseInstallation.getCurrentInstallation (). SaveInBackground (); no funciona
- Parse.com - Sonido personalizado de notificación push de Android
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
- Cómo iniciar la aplicación con Theme.Material en dispositivos antiguos
- Android mover aplicación a sd