Java firebase数据库读取问题
我正在尝试从firebase Datasebase上的最后一个节点获取值 我见过一些解决方案,但没有一个对我有效 代码如下:Java firebase数据库读取问题,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我正在尝试从firebase Datasebase上的最后一个节点获取值 我见过一些解决方案,但没有一个对我有效 代码如下: setData = FirebaseDatabase.getInstance().getReference().child("Questions"); Query lastQuery = setData.orderByKey().limitToLast(1); lastQuery.addListen
setData = FirebaseDatabase.getInstance().getReference().child("Questions");
Query lastQuery = setData.orderByKey().limitToLast(1);
lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild("JSON_OBJ")) {
SubmitKey item = dataSnapshot.getValue(SubmitKey.class);
String key2 = item.getJSON_OBJ();
} else {
Snackbar.make(findViewById(R.id.QuestionLayout), "JSON_ObJ not found", Snackbar.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我的构造函数类
public class SubmitKey {
private String JSON_OBJ;
public SubmitKey() {
}
public SubmitKey(String JSON_OBJ) {
this.JSON_OBJ = JSON_OBJ;
}
public String getJSON_OBJ() {
return JSON_OBJ;
}
}
它不会获取值,而是转到else语句并显示“JSON_OBJ not Found”
任何帮助都将不胜感激
编辑:我对代码做了一些更改,现在它显示了在类submitKey上没有找到0-101的setter/字段
D/ViewRootImpl@5b51511[问题]:ViewPostIme指针0
D/ViewRootImpl@5b51511[问题]:ViewPostIme指针1
如果语句转到else语句,它也不会进入内部。当您对Firebase数据库执行查询时,可能会有多个结果。因此,快照包含这些结果的列表。即使只有一个结果,快照也将包含一个结果列表 您的
onDataChange
需要通过迭代snapshot.getChildren()
来处理此列表:
请添加完整的堆栈跟踪?以及firebase结构标题为nullpointerexception,但您的问题是它转到else语句。。。这是哪一个?这是因为我添加了一个if语句,如果你不添加if-else语句,它会抛出nullpointer异常@cricket_007`找不到0-101的setter/field found`。。。必须定义类上的所有字段
lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot: snapshot.getChildren()) {
if (dataSnapshot.hasChild("JSON_OBJ")) {
SubmitKey item = dataSnapshot.getValue(SubmitKey.class);
String key2 = item.getJSON_OBJ();
} else {
Snackbar.make(findViewById(R.id.QuestionLayout), "JSON_ObJ not found", Snackbar.LENGTH_LONG).show();
}
}
}