首页 > 解决方案 > Android Firebase,获取节点中键的位置

问题描述

我想根据用户的排名获取数据。首先按用户点排序并获取用户在节点中的位置。但我想不出实现这一点的方法。

首先这是我的firebase“用户”节点 在此处输入图像描述

也许它会像 'databaseRef.child("users").orderByChild("points")...' 我从这里不知道。

附言。它没有得到第 n 个项目。它是“物品在哪里”(物品的第 n 个)

谢谢!

标签: androidfirebasefirebase-realtime-databaseranking

解决方案


请阅读

回调函数接收一个 DataSnapshot,它是数据的快照。快照是在单个时间点在特定数据库引用处的数据图片。在快照上调用 val() / getValue() 会返回数据的特定语言对象表示。如果引用的位置不存在数据,则快照的值为空。

如果你想得到所有points然后检查这个LOGIC

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("products");
    ref.addListenerForSingleValueEvent(
            new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    ArrayList<Integer> points = new ArrayList<>();
                    for (Map.Entry<String, Object> entry : products.entrySet()){
                        Map singleUser = (Map) entry.getValue();
                        points.add((Integer) singleUser.get("points"));
                    }

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                    //handle databaseError
                }
            });

推荐阅读