A User
jest zdefiniowany jako:Grupa użytkowników w Firebase
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
jest zdefiniowany jako:
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;
}
}
Przy próbie zapisania do Firebase, daje to błąd runtime:
java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JsonMappingException
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:611)
Czy problem jest związany z odwołaniami cyklicznymi, czy baza danych Firebase nie może przechowywać danych w ten sposób?
zamiast używać podejścia opartego logiczną byłoby dopuszczalne wykorzystanie kolekcji ciąg na grupy/użytkowników obiektów, aby wskazać ich członkostwa? To może wydawać się szalone, jeśli grupy osiągnęły poziom 1000+ – JamieB
@Chintan Jestem nowicjuszem w Firebase. Taką strukturę zarządzałem. Jak mogę zapytać o pobranie wszystkich grup, które mają członka "user1"? Zazwyczaj pytam w ten sposób: Zapytanie mQuery = mFirebaseDbRef.child ("groups"); – Kalpesh