簡介:我創建了我的應用程序的數據庫,如下圖所示。Android:讀取子節點的密鑰
爲了顯示用戶保存的書籍,我想先讀取用戶的書籍鍵(位於user-books
目錄),並保存所有這些密鑰的一個ArrayList,所以我可以在以後的負載(從books
目錄)與名爲MybooksFragment
的片段中的這些鍵相對應的BookObjects。
注:我想獲得和在ListView顯示這些按鍵,你可以看到下面:(要確保我得到正確的鍵)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_my_books, container, false);
final ListView booksIdListView = (ListView) view.findViewById(R.id.booksIdListView);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference databaseReference = database.getReference();
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String UID = user.getUid();
databaseReference.child("books").child(UID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> booksId = new ArrayList<String>();
for (DataSnapshot child: dataSnapshot.getChildren()) {
String userBookId = child.getKey();
booksId.add(userBookId);
}
ArrayAdapter<String> myBooksAdapter = new ArrayAdapter<String>(getActivity() ,
android.R.layout.simple_list_item_1 , booksId);
booksIdListView.setAdapter(myBooksAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
不幸ListView仍然是空的(沒有像我希望的那樣填充鍵)。 我在做什麼錯?
注:我使用這個數據庫模型,所以我可以躲開的重複數據
嘗試使用Firebase的listadapter來填充節點 –