[英]How to fetch data from firebase :
我想獲取日期字段,但下面的代碼沒有這樣做。 Toast 顯示為 null(字符串日期的值)。
公共字符串日期;
@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。
使用此代碼
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 文檔
https://firebase.google.com/docs/database/android/read-and-write
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.