我想检索所有用户(包括已登录用户)的数据。我面临的问题是,通过使用以下代码,我最终只读取了已登录用户的数据(let key为01Rn ..),而我想检索所有数据(也为FJHdk ..键)。
我想在books节点下显示键01Rn ...和FJHdk ...中的数据。但是我只获取01Rn ...键中的数据。
Uid = FirebaseAuth.getInstance()。getCurrentUser()。getUid();
mdatabasereference = FirebaseDatabase.getInstance()。getReference()。child(“ Sell”)。child(“ Books”)。child(Uid);
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerOptions<b_ooks> options = new FirebaseRecyclerOptions.Builder<b_ooks>()
.setQuery(mdatabasereference,b_ooks.class)
.build();
FirebaseRecyclerAdapter<b_ooks,booksViewHolder> recyclerAdapter = new FirebaseRecyclerAdapter<b_ooks, booksViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull final booksViewHolder holder, int position, @NonNull final b_ooks model) {
mdatabasereference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot postsnapshot : dataSnapshot.getChildren()) {
for (DataSnapshot data : postsnapshot.getChildren()) {
holder.Title.setText(model.getTitle());
holder.Price.setText(model.getPrice());
}
}
答案 0 :(得分:0)
要为所有用户处理图书,请创建对JSON中更高一级数据的引用:
DatabaseReference booksRef = FirebaseDatabase.getInstance().getReference().child("Sell").child("Books");
然后在onDataChange
中添加额外的外观,以循环显示DataSnapshot
中的用户节点:
booksRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
for(DataSnapshot bookSnapshot : dataSnapshot.getChildren()) {
System.out.println(bookSnapshot.getKey());
System.out.println(bookSnapshot.child("Title").getValue(String.class));
}
}
}