java - 如何从 Firebase (java) 中检索最后一个 child ?

标签 java android firebase firebase-realtime-database

DatabaseReference lastRef = FirebaseDatabase.getInstance().getReference().child("Ranklist");
Query lastQuery = lastRef.orderByKey().limitToLast(1);
lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot data) {
        newUser.Rank=Long.parseLong(data.getKey().toString())+1;

        OrderConsoleMessages();
        texts[0].setText("Last Rank is: "+newUser.Rank+" | UID: " + data.getValue());
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        OrderConsoleMessages();
        texts[0].setText(databaseError.toString());
    }
});

我的问题是如何从“Ranklist”中检索最后一个 child ?我试图 orderByKey ByValue 但在我的情况下没有任何效果。我没有收到任何错误,我想我只是没有从此查询中获取任何数据。

https://image.ibb.co/joKwCe/image.png

编辑:这是我从 data.getValue().toString 得到的 ->>> {4=somekey4}

最佳答案

您的代码工作正常。我测试了它。您对数据库的查询返回父节点“Ranklist”的最后一个子节点。将您的 DatabaseReference dbref 作为全局成员

dbRef = FirebaseDatabase.getInstance().getReference().child("Ranklist");
Query lastQuery = dbRef.orderByKey().limitToLast(1);
lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
     for(DataSnapshot data : dataSnapshot.getChildren())
     {
       //if you call methods on dataSnapshot it gives you the required values
       String s = data.getValue(); // then it has the value "somekey4" 
       String key = data.getKey(); // then it has the value "4:"
       //as per your given snapshot of firebase database data 
      }
}

@Override
public void onCancelled(DatabaseError databaseError) {

}});

希望对你有帮助...

快乐编码:-)

关于java - 如何从 Firebase (java) 中检索最后一个 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973982/

相关文章:

javascript - Sockets.io 接收但不发送消息

java - 具有多个按钮和不同 id 的 CustomView 监听器(回调)

安卓工作室错误 : Execution failed for task ':app:processDebugManifest'

timezone - Firebase.ServerValue.TIMESTAMP的时区

java - Spring Data JPA (Hibernate) 与动态条件的一对多关系

java - 使用 J2se 进行电话

java - 什么是NullPointerException,我该如何解决?

c# - 当我的应用程序运行时,是否可以检测 float /多窗口应用程序的使用?

javascript - 在云可调用函数中返回日期/服务器时间戳

android - 如何将音频从 Firebase 加载到应用程序?