我的 Firestore 中有这个结构,我希望登录的用户能够获取所有图像 URL 以及与该用户 ID 关联的其他字段,例如名称、价格和描述。此信息将被加载到 recyclerView 中。
这是项目模型
package com.bac.shoesrecyclerview;
public class Item {
private String itemName;
private String itemPrice;
private String itemDescription;
private String itemImage;
public Item(String itemName, String itemPrice, String itemDescription, String itemImage) {
this.itemName = itemName;
this.itemPrice = itemPrice;
this.itemDescription = itemDescription;
this.itemImage = itemImage;
}
public Item(){
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public String getItemPrice() {
return itemPrice;
}
public void setItemPrice(String itemPrice) {
this.itemPrice = itemPrice;
}
public String getItemDescription() {
return itemDescription;
}
public void setItemDescription(String itemDescription) {
this.itemDescription = itemDescription;
}
public String getItemImage() {
return itemImage;
}
public void setItemImage(String itemImage) {
this.itemImage = itemImage;
}
}
这是我尝试过的代码并破坏了我的应用程序:
fStore.collection("images").document(FirebaseAuth.getInstance().getCurrentUser().getUid()).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if(task.isSuccessful()){
DocumentSnapshot document = task.getResult();
Item item = new Item();
itemList = new ArrayList<>();
while (document.exists()){
item.setItemName(document.getString("name"));
item.setItemPrice(document.getString("price"));
item.setItemDescription(document.getString("description"));
item.setItemImage(document.getString("image"));
itemList.add(item);
}
shoeAdapter = new ShoeAdapter(MainActivity.this, itemList);
recyclerView.setAdapter(shoeAdapter);
shoeAdapter.notifyDataSetChanged();
}
}
尝试下面的查询来获取单个用户的多个文档 -
db.collection("images")
.whereEqualTo("user_id", FirebaseAuth.getInstance().getCurrentUser().getUid())
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Item item = new Item();
item.setItemName(document.getString("name"));
item.setItemPrice(document.getString("price"));
item.setItemDescription(document.getString("description"));
item.setItemImage(document.getString("image"));
itemList.add(item);
}
shoeAdapter = new ShoeAdapter(MainActivity.this, itemList);
recyclerView.setAdapter(shoeAdapter);
shoeAdapter.notifyDataSetChanged();
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
检查文档以了解更多此类查询 -https://firebase.google.com/docs/firestore/query-data/queries https://firebase.google.com/docs/firestore/query-data/queries
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)