Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何循环购物车中的项目,2)将每个项目添加到新位置,3)从旧位置删除项目_Android_Firebase_Firebaseui - Fatal编程技术网

Android 如何循环购物车中的项目,2)将每个项目添加到新位置,3)从旧位置删除项目

Android 如何循环购物车中的项目,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();

使用Recycler firestore适配器显示项目。我想让recyclerview视图中的项目添加到另一个数据库中,并通过单击按钮清除初始数据库。我尝试了这一点,但我得到了一个错误,即com.google.firebase.firestore.QuerySnapshot无法转换为java.util.List

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,我这样做了,但将项目添加到另一个数据库。现在我需要考虑删除购物车