我想获取日期字段,但下面的代码没有这样做。 Toast 显示 null(字符串日期的值)。
公共(public)字符串日期;
@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 中添加 toast:
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。
关于java - 如何从firebase :获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462883/