Android 如何循环购物车中的项目,2)将每个项目添加到新位置,3)从旧位置删除项目
使用Recycler firestore适配器显示项目。我想让recyclerview视图中的项目添加到另一个数据库中,并通过单击按钮清除初始数据库。我尝试了这一点,但我得到了一个错误,即com.google.firebase.firestore.QuerySnapshot无法转换为java.util.ListAndroid 如何循环购物车中的项目,2)将每个项目添加到新位置,3)从旧位置删除项目,android,firebase,firebaseui,Android,Firebase,Firebaseui,使用Recycler firestore适配器显示项目。我想让recyclerview视图中的项目添加到另一个数据库中,并通过单击按钮清除初始数据库。我尝试了这一点,但我得到了一个错误,即com.google.firebase.firestore.QuerySnapshot无法转换为java.util.List public void placeOrder() { FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
public void placeOrder() {
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query query = rootRef
.collection(String.valueOf(new
StringBuffer("/").append(user.getUid()).append("cart")));
Task task = query.get();
task.addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> list) {
CollectionReference notebookRef;
mAuth = FirebaseAuth.getInstance();
user = mAuth.getCurrentUser();
if (user != null) {
notebookRef = db.collection(String.valueOf(new
StringBuffer("/").append(user.getUid()).append("order")));
String name = String.valueOf(list.get(1));
String delivery = String.valueOf(list.get(2));
String amount = String.valueOf(list.get(3));
OrderItem orderItem = new OrderItem(name, amount,
delivery);
notebookRef.add(orderItem);
Toast.makeText(context, "Items Added",
Toast.LENGTH_SHORT).show();
}
}
});
}[![This is my Database][1]][1]
public void placeOrder(){
FirebaseFirestore rootRef=FirebaseFirestore.getInstance();
Query=rootRef
.collection(String.valueOf)(新
StringBuffer(“/”).append(user.getUid()).append(“cart”));
Task=query.get();
task.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公开作废(列表){
收集参考注释BookRef;
mAuth=FirebaseAuth.getInstance();
user=mAuth.getCurrentUser();
如果(用户!=null){
notebookRef=db.collection(String.valueOf)(新
StringBuffer(“/”).append(user.getUid()).append(“order”);
String name=String.valueOf(list.get(1));
String delivery=String.valueOf(list.get(2));
字符串金额=String.valueOf(list.get(3));
OrderItem OrderItem=新的OrderItem(名称、金额、,
交付);
notebookRef.add(订单项);
Toast.makeText(上下文,“添加的项目”,
吐司。长度(短)。show();
}
}
});
}[![这是我的数据库][1][1]
返回一个任务
。由于您在代码中声明了一个任务
,这将导致出现错误:com.google.firebase.firestore.QuerySnapshot无法转换为java.util.List
请研究上的文档,因为它包含您需要的精确代码段
但有一件事我不能完全确定,那就是你是从一个集合中得到一个完整的集合还是一个文档。您可以这样初始化
query
:
Query query = rootRef.collection(
String.valueOf(new StringBuffer("/").append(user.getUid()).append("cart")));
据我所知,这将导致一个路径
“/uidOfUser/cart”
,它将指向以当前用户命名的集合中的cart
文档。如果这确实是您的数据库结构,您需要遵循上的文档中的示例,该示例返回一个任务
,因此您基本上希望将一个元素从一个位置移动到另一个位置,对吗?@AlexMamo是的,我意识到我之前的答复格式不正确。我想在另一个位置添加recyclerview中的所有项目,并清除列表,如果可能,我还可以添加所有价格。嗨,Frank,我这样做了,但将项目添加到另一个数据库。现在我需要考虑删除购物车