android - open - parse push notifications
Error de SetReadAccess para el nuevo ParseObject (2)
Debe asegurarse de guardar el usuario actual.
// Register ParseObject subclasses
ParseObject.registerSubclass(Results.class);
// Set up Parse
Parse.enableLocalDatastore(MyApplication.this);
Parse.initialize(MyApplication.this, PARSE_APP_KEY, PARSE_CLIENT_KEY);
ParseUser.enableAutomaticUser();
ParseUser.getCurrentUser().saveInBackground(); // <--- This Line
ParseACL defaultACL = new ParseACL();
ParseACL.setDefaultACL(defaultACL, true);
No del todo seguro acerca de mi sintaxis, solo lo hice en Swift.
Tengo el siguiente código en mi clase de aplicación de una aplicación de Android:
// Register ParseObject subclasses
ParseObject.registerSubclass(Results.class);
// Set up Parse
Parse.enableLocalDatastore(MyApplication.this);
Parse.initialize(MyApplication.this, PARSE_APP_KEY, PARSE_CLIENT_KEY);
ParseUser.enableAutomaticUser();
ParseACL defaultACL = new ParseACL();
ParseACL.setDefaultACL(defaultACL, true);
Esto parece funcionar muy bien cada vez que tengo una nueva instalación de mi aplicación y creo nuevos objetos de Resultados. Ahora, si actualizo mi aplicación a través de Play Store o la instalo a través de Android Studio, aparece el siguiente error cada vez que se crean nuevos objetos Results, o cualquier otro ParseObject o subclase del mismo:
java.lang.IllegalArgumentException: cannot setReadAccess for a user with null id
¿Es esto un error con Parse? Obtengo los mismos resultados con el ejemplo Todo fuera de línea.
elimine la aplicación del dispositivo e instálela nuevamente. deberia de funcionar.
He aquí mi arreglo
//Parser App Crash Report
ParseCrashReporting.enable(this); //THIS is to test only => throw new RuntimeException("Test Exception!");
// Enable Local Datastore.
Parse.enableLocalDatastore(this);
// Initialise
Parse.initialize(this, PARSE_APP_ID, PARSE_CLIENT_KEY);
ParseUser.enableAutomaticUser();
ParseUser.getCurrentUser().saveInBackground();
ParseACL defaultACL = new ParseACL();
// If you would like all objects to be private by default, remove this line.
defaultACL.setPublicReadAccess(true);
ParseACL.setDefaultACL(defaultACL, true);
luego prueba con:
ParseObject testObject = new ParseObject("TestObject");
testObject.put("foo", "bar");
testObject.put("2", "2");
testObject.put("3", "3");
testObject.saveInBackground();