android - Android Firebase,获取节点中键的位置
问题描述
我想根据用户的排名获取数据。首先按用户点排序并获取用户在节点中的位置。但我想不出实现这一点的方法。
也许它会像 'databaseRef.child("users").orderByChild("points")...' 我从这里不知道。
附言。它没有得到第 n 个项目。它是“物品在哪里”(物品的第 n 个)
谢谢!
解决方案
请阅读
回调函数接收一个 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
}
});
推荐阅读
- azure-logic-apps - Azure 逻辑/服务总线队列 - “当队列中收到消息时”一次有多少条消息?
- sql - 按 5 分钟时间间隔对数据进行分组,SQL
- asp.net - 日期字段的 GridView 超链接未使用 vb.net 显示
- java - 从字符串到整数的转换
- ms-access - 为什么 Access 中的表格灰显且不可删除?
- pixel - ImageJ 中的 rawintden 测量值是什么意思?
- node.js - 节点redis ETIMEOUT问题
- laravel - 如何在laravel中填充选择选项?来自硬编码选项
- reactjs - 我可以从 React 上下文 (useContext) 中记住一个 setter 函数吗
- c# - AspNetCore Api 控制器函数中对 HttpContext 的属性访问