【发布时间】:2018-02-26 20:34:31
【问题描述】:
我正在尝试从 firebase 实时 database 检索数据。我有这个结构:
现在我尝试这样查询:
private void firebaseListView(){
Query query = FirebaseDatabase.getInstance().getReference()
.child("expenses")
.child(mAuth.getCurrentUser().getUid())
.orderByValue();
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Expenses expenses = dataSnapshot.getValue(Expenses.class);
mExpenseList.add(expenses);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
mExpenseList 是 Expenses 类的数组
它看起来像这样:
private long id;
private String name;
private double value;
private String category;
private String date;
private String location;
private long category_id;
private String firebase_id;
当我运行调试器时,我从数据库中获取信息,但它显示:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean java.util.ArrayList.add(java.lang.Object)”
我该如何解决这个问题?
【问题讨论】:
-
您查询中的
.orderByValue()没有意义,但这不是导致崩溃的原因。这似乎只是因为您没有在任何地方初始化mExpenseList。
标签: android arrays firebase firebase-realtime-database nullpointerexception