2017-03-16 4 views
0

Ich möchte den letzten Schlüssel des Buch-Knoten bekommen und erhöht um einen seinen Wert ++.Wie kann ich den letzten Schlüssel in Firebase Android bekommen?

Ich versuchte dies:

myRefVal=databaseBook.getReference("books"); 
    Query lastQuery = myRefVal.limitToLast(1); 

    lastQuery.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      idBook = dataSnapshot.getKey(); 
      int counter = 1; 
      counter = counter + 1; 
      idBook = idBook + counter; 
     } 
     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

enter image description here

Am Anfang hatte ich Justbook 1 nach dem Klick auf AddBook Knopf hatte ich book2 aber als ich versuchte, ein drittes Mal ein Buch mit den vorherigen book2 Werte hinzufügen abstürzen und die neuen Plätze auf Book2 einnehmen.

ich idBook bin mit Knoten Buch in Firebase Datenbank

myRefBook.child(idBook).setValue(bookInfos); 
+0

Haben Sie eine Lösung? @AL. – Amal

+0

https://firebase.google.com/docs/database/android/lists-of-data#read_and_write_lists –

Antwort

-1

I Methode geändert zu erstellen, statt für eine inkrementelle idBook Suche ich einen rundom gemacht idBook.

char[] chars = "abcdefghijklmnopqrstuvwxyz123456789".toCharArray(); 
     StringBuilder sb = new StringBuilder(); 
     Random random = new Random(); 
     for (int i = 0; i <4; i++) { 
      char c = chars[random.nextInt(chars.length)]; 
      sb.append(c); 
     } 
     String output = sb.toString(); 
     idBook=output+currentDateandTime; 
Verwandte Themen