gpt4 book ai didi

java - 如何计算Firebase数据库中的子节点整数值?(请看图片,谢谢)

转载 作者:行者123 更新时间:2023-11-29 18:27:57 26 4
gpt4 key购买 nike

my firebasebase database structure

我在这个应用程序中创建了一个 android 应用程序,我想计算唯一的子值。

我在数据库引用中创建了 for 循环并分配了全局变量,但问题是我不知道有多少唯一值将成为我的计算(多少变量)。

dbcloud.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
{
Modelfortotalsoldcount mc=dataSnapshot1.getValue(Modelfortotalsoldcount.class);
String name=mc.getFoodname();
String qty=mc.getFoodqty();
String price=mc.getFoodprice();
int totalcount=0;
if(fname.equals(name))
{
String fgname=name;
String fgprice=price;
Integer intqty=Integer.valueOf(qty);
totalcount=totalcount+intqty;
String totalval=String.valueOf(totalcount);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

最佳答案

假设所有这些对象都是您的 Firebase 根目录的直接子对象,要解决此问题,请使用以下查询:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.orderByChild("foodname").equalTo("Burger");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int count = 0;
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String foodqty = ds.child("foodqty").getValue(String.class);
count = count + Integer.valueOf(foodqty);

}
Log.d(TAG, "count:" + count);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
query.addListenerForSingleValueEvent(valueEventListener);

logcat 中的结果将是:

count: 4

编辑:

如果您不知道食物名称,那么您应该使用变量代替:

Query query = rootRef.orderByChild("foodname").equalTo(foodName);

其中 foodName 是用户在 EditText 中键入的内容,例如:

String foodName = foodNameEditText.getText().toString();

关于java - 如何计算Firebase数据库中的子节点整数值?(请看图片,谢谢),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57890346/

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