Limitar el número de llamadas al usar Parse

Estoy construyendo mi primera aplicación con un backend.

Información general

La aplicación permite a los usuarios subir un lugar, adjuntar etiquetas a él, fotos, etc.

Dbs

Estoy usando Realm como Db y Parse.com sin conexión como Db en línea.

Ejemplo

Estoy construyendo el modelo de base de datos y tratando de vincular todas las relaciones many-to-many. Un ejemplo: un lugar tiene un número de etiquetas (cadena corta), una etiqueta puede tener un número de lugares.

Para construir esto hice esto con el reino: 1. Hacer el objeto de lugar 2. Para cada etiqueta dada, hacer un objeto de etiqueta y agregar la relación de objeto de lugar 3. Obtener el objeto de lugar y agregar la relación de objeto de etiqueta

Ahora puedo conseguir todas las etiquetas de un lugar, cuando tengo el objeto de lugar. Puedo obtener todos los lugares que pertenecen a un objeto de etiqueta.

Estoy construyendo la versión en línea con Parse ahora, y me di cuenta de que este enfoque dará lugar a muchas llamadas.

Solución posible

  • No agregue la relación de objeto de etiqueta a la relación de lugar (paso 3) en su lugar, consulte la clase de etiqueta para la relación con el objeto de lugar. (Puede ser muy lento?)
  • ¿Hay una manera de construir el modelo 'offline' y empujarlo como un todo?

Como soy nuevo en este tipo de lógica, espero que la pregunta sea clara. Entiendo que es amplio, pero creo que lo mejor es explicar el caso total.

Hay varias maneras de implementar relaciones muchos-a-muchos en Parse. Puede utilizar Matrices o Relaciones dependiendo del número de objetos relacionados. Puede leer más en la documentación de Parse .

En Parse Relations, puede agregar varios objetos en una relación antes de realizar una llamada. Permítanme tomar el ejemplo de Book and Author en la documentación y ajustarlo para su caso. El proceso es:

  1. Hacer el objeto Place
  2. Compruebe si existe un objeto de etiqueta. Cree uno si no.
  3. Asociar los objetos de etiqueta con objeto de lugar en una relación de análisis

Aquí está el ejemplo de código:

// let's say we have a few objects representing Place tags ParseObject tagOne= ParseObject tagTwo = ParseObject tagThree = // now we create a place object or specify the one you want to update ParseObject place= new ParseObject("Place"); // now let's associate the tags with the place // remember to create a "tags" relation on Place ParseRelation<ParseObject> relation = place.getRelation("tags"); relation.add(tagOne); relation.add(tagTwo); relation.add(tagThree); // now save the book object book.saveInBackground(); 

EDITAR COMO COMENTARIO ABAJO

Si quieres encontrar todos los lugares con una etiqueta determinada, puedes hacer lo siguiente:

 ParseObject tag = .... ParseQuery<ParseObject> query = ParseQuery.getQuery("Place"); query.whereEqualTo("tags",tag); 
  • Realm: Iterando un RealmObject y borrando un campo ArrayList
  • Modo correcto de hacer la migración de Realm
  • Android Realm: restricción de clave primaria rota. El valor ya existe: 0
  • Realm.io de Android cómo sincronizar con el lado del servidor MySQL DB
  • RealmList de tipo de cadena en Android
  • Android: Realm + Retrofit 2 + Gson
  • Reino: se cambió el orden de los registros
  • Realm findAllSorted por el campo de un archivado
  • Android no puede encontrar la dependencia gradle reino
  • RealmResult consulta de nuevo
  • No se puede agregar un nuevo objeto a RealmList debido a la referencia de objeto null
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.