2017-05-09 5 views
0

Ich versuche Firebase zu verwenden, um meine ListView zu verwalten. Das Problem ist, dass ich benutzerdefinierte Objekte namens Gruppo auflisten möchte, die andere Objekte und nicht nur String enthält. Kann FirebaseListAdapter verwendet werden oder muss ich eine andere Strategie erfinden, um mein ListView in Echtzeit auf allen Telefonen zu aktualisieren?Firebase ListAdapter mit benutzerdefiniertem Objekt

Warum dann, wenn ich tun:

FirebaseDatabase database = FirebaseDatabase.getInstance("my_app_URL/"); 
    DatabaseReference rootRef = database.getReference(); 
    DatabaseReference groups = rootRef.child("groups"); 
    Query ref = groups; 

Abfrage ist leer und es braucht nicht alle Kinder von Gruppen?

Kann jemand ein gutes Tutorial posten? Ich habe folgte bereits das: https://www.youtube.com/watch?v=2J6spwAVP0M

Dank

Antwort

0

Firebase ist in der Lage Deserialisieren Knoten in einem Objekt komplexer als ein einzelnes String mit einigen Einschränkungen für Feldnamen und Datenstrukturen.
IE
In Firebase Datenbank:

groups: { 
    keyGroup1: { 
     groupName: "groupOne", 
     numParticipants: "2", 
     participants: { 
      keyPart1: { 
       name: "John", 
       surname: "Doe" 
      }, 
      keyPart2: { 
       name: "Jane", 
       surname: "Doe" 
      } 
     } 
    }, 
    keyGroup2: { 
     groupName: "groupTwo", 
     numParticipants: "1", 
     participants: { 
      keyPart1: { 
       name: "Chris", 
       surname: "Abc" 
      } 
     } 
    } 
} 

In Android:

public class Group { 
    private String groupName; 
    private int numParticipants; 
    private Map<String, Participant> participants; 

    // Constructor, getters and setters 
} 

public class Participant { 
    private String name; 
    private String surname; 

    // Constructor, getters and setters 
} 

dann können Sie Group.class-FirebaseListAdapter Konstruktor übergeben:

new FirebaseListAdapter<Group>(/* Activity */, Group.class, /* Layout */, /* DatabaseRef */); 

Allerdings, wenn Sie Ihre Datenstruktur sehr co mplex ist es möglicherweise sicherer, eine ValueEventListener zu verwenden, um Objekte und eine benutzerdefinierte Adapter manuell instanziieren.

Verwandte Themen