studio parse fcm docs community android parse.com local-database

android - fcm - parse swift



Android, guarde archivos en modo fuera de lĂ­nea(parse.com) (3)

Nunca llama a la opción de guardar llamada en el archivo (lea el error con cuidado: "No se puede codificar un archivo PARSAVISO NO VENCIDO")

Primero debe guardar el archivo; cuando eso se complete, puede llamar guardar al objeto que hace referencia al archivo.

Te recomiendo que llames a file.saveInBackground () usando devoluciones de llamada. https://parse.com/docs/android/api/com/parse/ParseFile.html#saveInBackground(com.parse.SaveCallback , com.parse.ProgressCallback)

ejemplo:

vacío privado saveImageOnParseWithCallbacks () {

parseFile = new ParseFile(gate_image.getName(), byte_image); parseFile.saveInBackground(new SaveCallback() { @Override public void done(ParseException e) { if (e == null) { saveParseObject(); // this is where you call object.SaveEven.... }else { e.printStackTrace(System.err); } } }, new ProgressCallback() { @Override public void done(Integer percentDone) { // Update your progress spinner here. percentDone will be between 0 and 100. } }); }

Mire la nueva tienda de datos local de parse. Funciona para ParseObjects pero no para ParseFiles (hasta donde yo sé). Para una solución fuera de línea, primero tendrá que fijar los archivos de objeto y almacenar la imagen localmente en la tarjeta SD. Cuando finalice el savecallback on object, puede guardar la imagen (es decir, usted sabe que tiene Internet restaurado). Cuando finalice la recuperación de la imagen, puede actualizar el objeto con una referencia a la imagen.

https://parse.com/docs/android/api/com/parse/ParseObject.html#pinAllInBackground(java.lang.String , java.util.List, com.parse.SaveCallback)

parse.com proporciona una forma de guardar objetos en modo fuera de línea con object.saveEventually (); llamada ... esto almacena el objeto en la tienda de datos local a menos que la sincronización se realice con el servidor.

el problema es que no puedo almacenar el archivo con las líneas indicadas a continuación

ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 80, stream); byte[] byteArray = stream.toByteArray(); file = new ParseFile("pic.png",byteArray); object.put("file.png", file); object.saveEventually();

da el siguiente error

java.lang.IllegalStateException: Unable to encode an unsaved ParseFile

de acuerdo con la documentación de análisis para guardar el archivo file.saveInBackground debería llamarse ... y creo que saveInBackground solo funciona cuando hay conexión a Internet ...

pero lo que quiero implementar es obtener datos (objeto o archivo) de la tienda de datos local hasta que se realice la sincronización con el servidor ...

Entonces, ¿cómo puedo guardar el archivo de tal manera en el modo fuera de línea que puedo acceder a ese archivo desde la tienda de datos local hasta que la sincronización se realice con el servidor ...


guarde su objeto eventualmente y en la devolución de llamada de savewithventually invoque saveinbackground de parsefile y coloque nuevamente ese archivo en su objeto y guárdelo eventualmente. Esto guardará su archivo sin conexión