Java 如何从firebase获取数据:
我想获取日期字段,但下面的代码没有这样做。Toast显示null(字符串日期的值) 公共字符串日期Java 如何从firebase获取数据:,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想获取日期字段,但下面的代码没有这样做。Toast显示null(字符串日期的值) 公共字符串日期 @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState){ DatabaseReference rootRef , demoRef; //database reference pointing to root of database rootRef = Fireb
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState){
DatabaseReference rootRef , demoRef;
//database reference pointing to root of database
rootRef = FirebaseDatabase.getInstance().getReference();
//database reference pointing to demo node
demoRef = rootRef.child("dates");
demoRef.child("date").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
date = dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Toast.makeText(getContext() , date , Toast.LENGTH_SHORT).show();
}
在onDataChange中添加烤面包:
demoRef.child("date").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
date = dataSnapshot.getValue(String.class);
Toast.makeText(getContext() , date , Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
由于onDataChange
是异步的,它在完成数据检索之前会转移到另一个任务,因此您需要在方法中添加toast。使用此代码
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
Post post = dataSnapshot.getValue(Post.class);
// ...
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
};
有关更多详细信息,请查看firebase文档
toast显示为null,因为它是异步的。即使Log.d()也会给出相同的结果null现在显示此错误………..java.lang.NullPointerException:尝试在null对象引用上调用虚拟方法“android.content.res.Resources android.content.Context.getResources()”检查: