【发布时间】:2017-08-03 12:43:41
【问题描述】:
简介:我已经创建了我的应用程序的数据库,如下图所示。
为了显示用户保存的书籍,我首先尝试读取用户的书籍密钥(位于 user-books 目录中)并将所有这些密钥保存在 ArrayList 中,以便稍后加载(来自 books 目录) BookObjects 对应于名为MybooksFragment 的片段中的这些键。
注意:我正在尝试在 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 填充节点
标签: android firebase firebase-realtime-database key