2017-03-16 38 views
0

我想獲取書本節點的最後一個鍵並增加一個他的值++。如何獲取Firebase Android中的最後一個鍵?

我嘗試這樣做:

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

在開始的時候我有justBook 1,點擊addbook按鈕後,我不得不第二冊,但是當我嘗試添加第三次一本書前面的第二冊值崩潰,新的出現在Book2上。

我使用idBook創造火力地堡數據庫節點本書

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

你有解決方法嗎? @AL。 – Amal

+0

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

回答

-1

我改變了方法,而不是尋找一個增量idBook我做了一個rundom 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; 
相關問題