gpt4 book ai didi

java - 未从 firebase 获取 RecyclerView 的所有结果

转载 作者:行者123 更新时间:2023-12-02 11:41:41 24 4
gpt4 key购买 nike

我的应用程序有两类用户:店主和买家。当店主添加商店时,我使用他的 UID,然后按键添加商店,如下所示:

this

图片中“83yV”和“FmNu”是店主,他们分别添加了 2 家和 1 家商店。

现在对于买家来说,我想在回收者 View 中显示完整的商店列表。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_shops_avtivity);

shopsDB = FirebaseDatabase.getInstance().getReference().child("shops");
}

@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Shop,ShopViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Shop, ShopViewHolder>(
Shop.class,
R.layout.shop_single_layout,
ShopViewHolder.class,
shopsDB)
}

问题是当我将 Firebase Recycler Adapter 指向 shopDB 时,它返回两个空的 cardView,如下所示:

this

当我将其指向特定的 child 时

shopsDB = FirebaseDatabase.getInstance().getReference().child("shops").child("83yV24a3AmP15XubhPGApvlU7GE2");

它返回按“83yV”添加的商店。

我怎样才能获得其他所有者添加的商店?最好不要更改当前数据库或创建一个包含子数据库中所有商店的数据库。

最佳答案

要实现此目的,您需要使用 getChildren() 方法两次,一次获取所有用户,第二次获取所有商店。

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference shopsRef = rootRef.child("shops");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
for(DataSnapshot dSnapshot : ds.getChildren()) {
String name = dSnapshot.child("name").getValue(String.class);
Log.d("TAG", name);
}
}
}

@Override
public void onCancelled(DatabaseError databaseError) {}
};
shopsRef.addListenerForSingleValueEvent(eventListener);

使用此代码,您将能够向买家显示所有商店名称。

关于java - 未从 firebase 获取 RecyclerView 的所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48500199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com