2016-10-16 62 views
0

我的DB: enter image description here如何获取Firebase数据库中项目的最大ID?

创建新的项目是这样的:

mFirebaseDatabase.getReference(Api.CREDITS).child(String.valueOf(item.getId())).setValue(item); 

,但是当我将创建一个新的项目,我需要把他的ID ...如何确定的的最后一个ID Firebase列表中的项目?

回答

1

最简单的方法是可能的:

var latest = ref.child("credits").orderByKey().limitToLast(1); 
latest.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) { 
      String latestKey = childSnapshot.getKey(); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     Log.w(TAG, "onCancelled", databaseError.toException()); 
    } 
}) 

但是这会导致类似的问题:

  • 当用户没有网络连接的这个操作将无法正常工作
  • 当多个用户试图在几乎同一时间添加儿童

T他是Firebase建议不要使用此类连续数字ID并使用推送ID的众多原因之一。

阅读documentation on dealing with lists和此博客文章:https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html

相关问题