当前位置: 首页 > 知识库问答 >
问题:

java.lang.ClassCastException:java.lang.Boolean不能强制转换为java.util.Map

姬选
2023-03-14

我得到了这一行的错误:“map map=(map)datasnapshot.getValue();”

     private void getAssignedCustomer(){
    String driverId = FirebaseAuth.getInstance().getCurrentUser().getUid();
    DatabaseReference assignedCustomerRef = FirebaseDatabase.getInstance().getReference().child("Users").child("Drivers").child(driverId);
    assignedCustomerRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot.exists()){

                Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();

                if(map.get("customerRideId") != null){
                    customerId = map.get("customerRideId").toString();
                    getAssignedCustomerPickupLocation();
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}

如何摆脱这个错误???

共有1个答案

于高雅
2023-03-14

引用Firebase文档:

getValue()将此快照中包含的数据作为本机类型返回。返回的可能类型有:

布尔的

此列表是递归的;以上列表中对象的可能类型由同一列表给出。这些类型对应于JSON中可用的类型。

DataSnapshot.getValue()返回的值似乎是布尔值,并且它肯定不能分配给映射

请确保您使用的是DataSnapShot中的正确数据

 类似资料: