Java 产品在数据库中,但在我的android应用程序中没有显示在片段中
我正在尝试学习android,我有这个购物清单,使用云Firestore数据库。当我想在数据库中添加产品时,它是有效的(我可以在Firebase中看到它们),但是当我想显示它们时,它们不会显示出来。你知道为什么吗?谢谢大家! 这是Java 产品在数据库中,但在我的android应用程序中没有显示在片段中,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我正在尝试学习android,我有这个购物清单,使用云Firestore数据库。当我想在数据库中添加产品时,它是有效的(我可以在Firebase中看到它们),但是当我想显示它们时,它们不会显示出来。你知道为什么吗?谢谢大家! 这是ShoppingListFragment中的onCreateView()函数的一部分: rootRef = FirebaseFirestore.getInstance(); shoppingListProductsRef = rootRef.collec
ShoppingListFragment
中的onCreateView()
函数的一部分:
rootRef = FirebaseFirestore.getInstance();
shoppingListProductsRef = rootRef.collection("products").document(shoppingListId).collection("shoppingListProducts");
RecyclerView recyclerView = shoppingListViewFragment.findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
TextView emptyView = shoppingListViewFragment.findViewById(R.id.empty_view);
ProgressBar progressBar = shoppingListViewFragment.findViewById(R.id.progress_bar);
Query query = shoppingListProductsRef.whereEqualTo("izInShoppingList", izInShoppingList)
.orderBy("productName", Query.Direction.ASCENDING);
FirestoreRecyclerOptions<ProductModel> firestoreRecyclerOptions = new FirestoreRecyclerOptions.Builder<ProductModel>()
.setQuery(query, ProductModel.class)
.build();
firestoreRecyclerAdapter =
new FirestoreRecyclerAdapter<ProductModel, ProductViewHolder>(firestoreRecyclerOptions) {
@Override
protected void onBindViewHolder(@NonNull ProductViewHolder holder, int position, @NonNull ProductModel model) {
holder.setProduct(getContext(), shoppingListViewFragment, userEmail, userName, shoppingListModel, model);
}
@Override
public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_product, parent, false);
return new ProductViewHolder(view);
}
@Override
public void onDataChanged() {
if (progressBar != null) {
progressBar.setVisibility(View.GONE);
}
if (getItemCount() == 0) {
recyclerView.setVisibility(View.GONE);
emptyView.setVisibility(View.VISIBLE);
} else {
recyclerView.setVisibility(View.VISIBLE);
emptyView.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return super.getItemCount();
}
};
recyclerView.setAdapter(firestoreRecyclerAdapter);
return shoppingListViewFragment;
}
rootRef=FirebaseFirestore.getInstance();
shoppingListProductsRef=rootRef.collection(“产品”).document(shoppingListId.collection(“shoppingListProducts”);
RecyclerView RecyclerView=shoppingListViewFragment.findViewById(R.id.recycler\u视图);
setLayoutManager(新的LinearLayoutManager(getContext());
TextView emptyView=shoppingListViewFragment.findViewById(R.id.empty\u视图);
ProgressBar ProgressBar=shoppingListViewFragment.findViewById(R.id.progress\u bar);
Query Query=shoppingListProductsRef.whereEqualTo(“izInShoppingList”,izInShoppingList)
.orderBy(“productName”,Query.Direction.升序);
FirestoreRecyclerOptions FirestoreRecyclerOptions=新建FirestoreRecyclerOptions.Builder()
.setQuery(查询,ProductModel.class)
.build();
FireStore回收适配器=
新FirestoreRecyclerAdapter(firestoreRecyclerOptions){
@凌驾
受保护的无效onBindViewHolder(@NonNull ProductViewHolder holder,int位置,@NonNull ProductModel模型){
setProduct(getContext(),shoppingListViewFragment,userEmail,userName,shoppingListModel,model);
}
@凌驾
公共产品ViewHolder onCreateViewHolder(视图组父级,int-viewType){
View=LayoutFlater.from(parent.getContext()).flate(R.layout.item_product,parent,false);
返回新的ProductViewHolder(视图);
}
@凌驾
公共无效onDataChanged(){
if(progressBar!=null){
progressBar.setVisibility(View.GONE);
}
如果(getItemCount()==0){
recyclerView.setVisibility(View.GONE);
emptyView.setVisibility(View.VISIBLE);
}否则{
recyclerView.setVisibility(View.VISIBLE);
emptyView.setVisibility(View.GONE);
}
}
@凌驾
public int getItemCount(){
返回super.getItemCount();
}
};
recyclerView.setAdapter(firestoreRecyclerAdapter);
返回shoppingListViewFragment;
}
可能有多个原因,通过设置开始:recyclerView.setHasFixedSize(false)
您的参考资料中的shoppingListId
值是多少?请编辑您的问题并将您的数据库结构添加为屏幕截图。还请回复@AlexMamoThank you@Yupi,我添加了它并成功:)@AlexMamo我添加了recyclerView.setHasFixedSize(false);它现在可以工作了,但我在尝试将产品从“购物清单”移动到“产品清单”时遇到了另一个问题。我将添加一个不同的question@Andra很高兴听到这个消息;)是的,应该问另一个问题。可能有多个原因,从设置开始:recyclerView.setHasFixedSize(false)
您的参考资料中的shoppingListId
值是多少?请编辑您的问题并将您的数据库结构添加为屏幕截图。还请回复@AlexMamoThank you@Yupi,我添加了它并成功:)@AlexMamo我添加了recyclerView.setHasFixedSize(false);它现在可以工作了,但我在尝试将产品从“购物清单”移动到“产品清单”时遇到了另一个问题。我将添加一个不同的question@Andra很高兴听到这个消息;)是的,我应该问另一个问题。