从 firebase firestore 检索数据列表时出错

这样的

我有一个购物应用程序,我需要保存一个对象列表,保存到 firestorm 工作正常,但是在获取数据后,它不断崩溃并抛出错误,如果有人可以提供帮助,提前谢谢你

  • 这是firestorm的截图以及数据是如何保存的在此处输入图像描述
  • 抛出错误
  E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.shoppingapp, PID: 2110
    java.lang.ClassCastException: java.util.HashMap cannot be cast to com.example.shoppingapp.models.CheckoutModel
 
  • 这就是我将数据保存到 Firestore 的方式
                Map<String,Object> paymentMap = new HashMap<>();
                paymentMap.put("total",String.valueOf(itemsTotal));
                paymentMap.put("items",list);

                firebaseFirestore
                        .collection("Orders")
                        .document(uniqueID)
                        .set(paymentMap)
 
  • 这就是我试图检索数据的方式
   firebaseFirestore
                .collection("Orders")
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @RequiresApi(api = Build.VERSION_CODES.N)
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        for(DocumentSnapshot document : task.getResult()){
                            List<CheckoutModel> map = (List<CheckoutModel>) document.get("items");
                            String totalPrice = document.get("total").toString();

                            // TESTING BY GETTING PRODUCT ID
                            // it throws exception here
                            textView.setText(map.get(0).getProductID());
                        }
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {

                    }
                });
卡希夫马苏德

可以做两件事,

  1. 不要映射整个列表,而是尝试遍历文档并一次映射一个对象。
  2. 其次,在您的 checkOutModel 中为所有变量赋予初始值。如果变量没有初始值,映射会出错。例如,用“”实例化字符串变量,用 0 或 1 实例化数值变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章