Grupo de usuarios en firebase
Un User
se define como:
public class User { private String email; private String uid; private List<Group> groups; public User(String email, String uid) { this.email = email; this.uid = uid; this.groups = new ArrayList<>(); } public User() {} public User(String email, String uid, ArrayList<Group> groups) { this.email = email; this.uid = uid; this.groups = groups; } public String getEmail() { return email; } public String getUid() { return uid; } public List<Group> getGroups() { return groups; } public void addGroup(Group group) { if (this.groups == null) { this.groups = new ArrayList<>(); } this.groups.add(group); } }
Group
se define como:
- Restlet en Android - Problemas con la serialización
- Creación de JSONObject de cadena en JAVA (org.json)
- Android - cómo agregar @hide anotación en mi proyecto
- Cómo establecer un intervalo de minutos personalizado en TimePickerDialog en Android
- Android OpenCV: dibujo de partidos con feature2d
public class Group { private List<User> memberList; private Group() { } public Group(List<User> users) { this.memberList = users; } public void addMember(User member) { this.memberList.add(member); } public List<User> getMemberList() { return memberList; } }
Al intentar guardar en firebase, esto da un error de tiempo de ejecución de:
java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JsonMappingException at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:611)
¿El problema tiene que ver con referencias circulares o Firebase no puede almacenar datos de esta manera?
- ¿Deshacer / rehacer rápidamente con el patrón del memento / comando?
- La aplicación de Android no aparece en el emulador
- Cómo convertir String en String y viceversa en Android
- Excepción de puntero nulo con vista personalizada en el diseño xml
- Barra de progreso personalizada en Android?
- Android Image Viewer de la aplicación
- Android BluetoothSocket write falla en 4.2.2
- TimerTask vs Thread.sleep vs Handler postDelayed - más preciso para llamar a la función cada N milisegundos?
Sí creo que el problema es con referencia circular. Donde hay referencia circular, siempre hay problema con la serialización.
Como podemos ver, usted tiene una relación bidireccional entre Usuarios y Grupos. Según la documentación oficial se puede mejorar la estructura como:
{ "users": { "user1": { "name": "User 1", "groups": { "group1": true, "group2": true, "group3": true }, "user2": { "name": "User 2", "groups": { "group2": true, "group3": true } }, ... }, "groups": { "group1": { "name": "Group 1", "members": { "user1": true }, "group2": { "name": "Group 2", "members": { "user1": true, "user2": true }, "group3": { "name": "Group 3", "members": { "user1": true, "user2": true } }, ... } }
- Trigger android gestor de descargas Cordova
- No se puede crear F # Android Project – Visual Studio 2015 Comunidad Xamarin