- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试按子值“月”对数据库进行排序,但 orderByChild 不起作用。当我使用 onChildEventListener 而不是 addListenerForSingleValueEvent 时它可以工作但我不想使用 childEventListener
这是我的数据库
"Stats" : {
"2019" : {
"YxdZZHGy3rW4xdjORfk2i5mFRYG2" : {
"August" : {
"Weight" : {
"Body_Fat" : "29",
"Month" : 8,
"Weight" : "68"
}
},
"October" : {
"Weight" : {
"Body_Fat" : "29",
"Month" : 10,
"Weight" : "67"
}
},
"September" : {
"Weight" : {
"Body_Fat" : "28.5",
"Month" : 9,
"Weight" : "65.5"
}
}
}
}
},
这是java代码
userStatsDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Query query = userStatsDatabase.child(ds.getKey()).child("Weight").orderByChild("Month").limitToFirst(12);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
pastMonthsBodyFat = Float.parseFloat(map.get("Body_Fat").toString());
pastMonthsWeight = Float.parseFloat(map.get("Weight").toString());
pastWeightList.add(pastMonthsWeight);
pastBodyFatList.add(pastMonthsBodyFat);
Toast.makeText(Stats.this, map.get("Month").toString(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Toast 应该按顺序打印月份值 8,9,10,但它正在打印值 8,10,9
最佳答案
如果userStatsDatabase
指向此JSON(对于特定用户):
{
"August" : {
"Weight" : {
"Body_Fat" : "29",
"Month" : 8,
"Weight" : "68"
}
},
"October" : {
"Weight" : {
"Body_Fat" : "29",
"Month" : 10,
"Weight" : "67"
}
},
"September" : {
"Weight" : {
"Body_Fat" : "28.5",
"Month" : 9,
"Weight" : "65.5"
}
}
}
然后您可以通过以下方式获取按月
顺序排列的结果:
Query query = userStatsDatabase..orderByChild("Weight/Month");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot monthSnapshot: dataSnapshot.getChildren()) {
System.out.println(monthSnapshot.getKey()); // August, September, October
System.out.println(monthSnapshot.child("Weight/Month").getValue(Long.class)); // 8, 9, 10
}
}
...
关于java - orderByChild 查询不适用于 addListenerForSingleValueEvent Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58210960/
我在我的应用中使用 firebase 数据库。我正在使用 addListenerForSingleValueEvent Listner 来更新数据库中的数据。我发现数据没有正确更新,调试代码后发现监听
我使用 addListenerForSingleValueEvent 将值添加到当前用户的子“代码”中,但数据是重复的。 Here is the database before the coding
我尝试连接到 firebase 以获取 display_name 和 profile_photo对于我的帖子,例如 Instagram像这个 example image但是当我运行我的应用程序时,它说
我正在尝试根据购物车中存在的商品数量访问 addListenerForSingleValueEvent 特定次数,但由于它只监听一次,我无法从数据库中获取信息(即我需要获取每个产品的可用值,但仅获取一
每当我将 addListenerForSingleValueEvent 与 setPersistenceEnabled(true) 结合使用时,我只能获取 DataSnapshot 的本地离线副本,不
每当我将 addListenerForSingleValueEvent 与 setPersistenceEnabled(true) 结合使用时,我只能获取 DataSnapshot 的本地离线副本,不
我是 Firebase 的新手。 我读到 Firebase 几乎没有方法来监听数据库的变化,addListenerForSingleValueEvent 和 addValueEventListener
如文档所述,SingleValueEvent 的监听器仅运行一次。 那么这样用完listener是不是就不用去掉了呢? final Query query = getChatsRef().limitT
我知道这已经被问了很多,但我仍然可以让它工作。这是我的代码: private int test; DatabaseReference rootRef = FirebaseDatabase.getIns
每当我将 addListenerForSingleValueEvent 与 setPersistenceEnabled(true) 一起使用时,我只能设法获得 DataSnapshot 的本地脱机副本
我看到很多关于在 Android 上使用 Firebase 实时数据库的教程、文档和问题都在谈论 addListenerForSingleValueEvent方法。这种方法从数据库中读取一次值,这就是
我尝试按子值“月”对数据库进行排序,但 orderByChild 不起作用。当我使用 onChildEventListener 而不是 addListenerForSingleValueEvent 时
我有一个查询要进行一次并且不想保留监听器,以便在发送手动触发器时更新数据。 所以我的查询是这样的: var ref = this.instance.child('/user/manish/today/
当我的应用程序启动时,我会在我的 Firebase 数据库中检查当前用户的详细信息(我为此存储了它的 uid)。 我将 addListenerForSingleValueEvent 附加到用户的引用以
这个问题在这里已经有了答案: Firebase Offline Capabilities and addListenerForSingleValueEvent (4 个答案) 关闭 5 年前。 我正
我正在从 firebase 数据库中获取数据到 recyclerview。我无法将数据获取到 RecyclerViewAdapter,因为 Array 列表在 addListenerForSingle
这个问题在这里已经有了答案: users does not define no argument constructor [duplicate] (1 个回答) How can I seriali
我正在处理 firebase 数据库查询。但是当他们在那里写的时候阅读文档时有点困惑 addChildEventListener() 监听器的 onChildAdded() 每次添加 child 时都
正如标题所说,我想知道Firebase的addValueEventListener()和addListenerForSingleValueEvent()的区别。 最佳答案 addValueEventL
我是一名优秀的程序员,十分优秀!