我正在从事一个android项目,始终在一行中遇到错误。所以我尝试记录下来,发现代码表现异常。
从不同位置登录时,同一行代码在logcat中输出不同的值。
doc.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()) {
//Log.d("Log1", "Query" + dataSnapshot);
docid = data.child("id").getValue(String.class);
//Log.d("Log1", "onDataChange(ID): " + docid);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Log.d("Log1", "onDataChange(ID): " + docid);
Query pat = refc.orderByChild("docname").equalTo(docid);
pat.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Log.d("Log3"," "+dataSnapshot);
Log.d("Log1", "onDataChange(ID): " + docid);
for(DataSnapshot pat: dataSnapshot.getChildren()){
}
}
当从侦听器内部调用时,日志行输出记录的ID,但是当从外部调用时,日志行输出null。如果有人可以帮助我并让我了解发生这种情况的原因,我将非常感激。