gpt4 book ai didi

android - 如何在 addChildEventListener 中计算 child 数?

转载 作者:搜寻专家 更新时间:2023-10-30 23:31:39 25 4
gpt4 key购买 nike

我的问题是如何计算 addChildEventListener 中的子节点?下面的代码在 addValueEventListener 上工作,它正确地计算了我的 child ,但是当我使用 addChildEventListener 时。它不起作用。我之所以使用它,是因为这个线程:Firebase Android count children/ badge .我试过了,但它在我的代码中不起作用。

在这张图片中,借来的书应该算作 2,但它返回到 10: Wrong counting in borrowed book portion

这张图片显示了我在 firebase 中的数据库:Database of Firebase .之所以返回10是因为统计了user.getUid()的 child 的 child 。我只想计算 user.getUid()

的 child

这是我的部分代码:

databaseReference.child("Mark as Borrowed").child(uid).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String number = dataSnapshot.getChildrenCount()+"";
btnNumber.setText(number);

}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

最佳答案

对于在您选择的引用中找到的每个 child ,都会触发一次子监听器,并且会随着时间的推移随着 child 的添加、更改和删除而不断触发。只有当监听器从引用中移除时,它才会停止触发这些事件。它不像单值事件监听器那样是一次性查询。

如果您想在单个查询中了解某个位置的 child 数量,addListenerForSingleValueEvent()在引用上。这将生成一个 DataSnapshot,您可以迭代和计算其子项。

关于android - 如何在 addChildEventListener 中计算 child 数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48712548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com