【发布时间】:2025-12-10 16:50:01
【问题描述】:
我在 Firebase 数据库中创建了一些用户和他们的孩子,我也填充了它,但是当我从数据库中读取时,它给了我不完整的数据。我有一个 数据库 > 费用管理器 > 用户 > 费用。我正在从费用中检索数据。费用连续包含 3 个重复值,我总共有 10 个条目,但是当我检索时,我只得到 9 个条目。缺少三个重复值之一。我在 childEventListener > onChildAdded() 中使用每个循环。
database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("ExpenseManager");
mChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
for(DataSnapshot dataSnapshots : dataSnapshot.getChildren()){
expenseTestModelValues = (ExpenseTestModel) dataSnapshot.getValue(ExpenseTestModel.class);
readValue.setText(expenseTestModelValues.getExpName()
+"\n "+expenseTestModelValues.getExpType()
+"\n "+expenseTestModelValues.getExpAmt()
+"\n "+expenseTestModelValues.getDate()
+"\n "+expenseTestModelValues.getMonth()
+"\n "+expenseTestModelValues.getYear());
}
Log.e(TAG,expenseTestModelValues.getExpName()
+"\n "+expenseTestModelValues.getExpType()
+"\n "+expenseTestModelValues.getExpAmt()
+"\n "+expenseTestModelValues.getDate()
+"\n "+expenseTestModelValues.getMonth()
+"\n "+expenseTestModelValues.getYear());
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
myRef.child(currentUser.getUid()).child("expenses").addChildEventListener(mChildEventListener);
日志也只打印 9 个条目而不是 10 个。 如果我的所有条目都相同,那么当我从数据库中读取时,它只会给我 2 个条目。 我也尝试过 ValueEventListener 。但是遇到同样的问题。 请帮忙!!!。
ExpenseTestModel
package com.nkbw.expensemanager.test;
公共类 ExpenseTestModel {
String date;
String month;
String year;
String expName;
String expType;
public ExpenseTestModel() {
}
public ExpenseTestModel(String date, String month, String year, String expName, String expType, String expAmt) {
this.date = date;
this.month = month;
this.year = year;
this.expName = expName;
this.expType = expType;
this.expAmt = expAmt;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getMonth() {
return month;
}
public void setMonth(String month) {
this.month = month;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getExpName() {
return expName;
}
public void setExpName(String expName) {
this.expName = expName;
}
public String getExpType() {
return expType;
}
public void setExpType(String expType) {
this.expType = expType;
}
public String getExpAmt() {
return expAmt;
}
public void setExpAmt(String expAmt) {
this.expAmt = expAmt;
}
String expAmt;
}
这是最后三个条目的图像。最后第二个和最后三分之一具有相同的值。所以我只得到最后的第二个和第三个条目之一,而不是两者。 我总共有 10 个条目,我只得到 9 个。为什么会这样。
【问题讨论】:
-
您正在尝试访问
expenses?你能告诉你ExpenseTestModel -
是的,我正在访问费用。我在帖子中添加了 ExpenseTestModel。 @弗兰肯斯坦
-
可以在这个
ExpenseTestModel()中存储数据吗? -
是的。它甚至存储在 firebase 数据库中
-
问题是,如果我有多个重复数据并且当我读取这些值时,我不会从数据库@frankenstein 获得总条目
标签: java android firebase android-studio-3.0