如何获取Firebase Android中的最后一个密钥?
我想获取book节点的最后一个键,并以his值++递增 我试过这个:如何获取Firebase Android中的最后一个密钥?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想获取book节点的最后一个键,并以his值++递增 我试过这个: myRefVal=databaseBook.getReference("books"); Query lastQuery = myRefVal.limitToLast(1); lastQuery.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataCh
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) {
}
});
一开始我只有Book1,点击addbook按钮后我有book2,但当我第三次尝试添加一本书时,以前的book2值崩溃,新的值固定在book2上的位置
我正在使用idBook在Firebase数据库中创建节点簿
myRefBook.child(idBook).setValue(bookInfos);
我没有使用方法来创建关键点,而是使用firebase的push方法来创建随机关键点节点:
private void createBook(String nom_livre,String cat_selected, String type_annonce_selected ) {
bookInfos=new Book(nom_livre,cat_selected,type_annonce_selected);
myRefBook.push().setValue(bookInfos);
}
我使用orderByKey和dataSnap.getKey来显示最后一个键:
ref.orderByKey().limitToFirst(2).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> list = new ArrayList<String>();
for (DataSnapshot dataSnap : dataSnapshot.getChildren()) {
Book valueBook = dataSnap.getValue(Book.class);
keyId = dataSnap.getKey();
String titreLivreToDisplay = valueBook.getNom_livre();
String descLivreToDisplay = valueBook.getDesc_livre();
//Do what you want with the key Node
}} });
你有解决办法吗@艾尔。