我在此行中遇到错误:“Mapmap =(Map)数据快照.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) {
}
});
}
如何摆脱这个错误???
4条答案
按热度按时间368yc8dk1#
引用Firebase文档:
getValue()将此快照中包含的数据作为本机类型返回。返回的可能类型包括:
布尔
字符串
长
双倍
Map
列表
这个列表是递归的;上面列表中Object的可能类型也是由同一列表给出的。2这些类型对应于JSON中可用的类型。
从
dataSnapshot.getValue()
返回的值似乎是Boolean,并且肯定不能将其分配给Map<String, Object>
。确保使用
dataSnapshot
中的正确数据yduiuuwa2#
首先在您的firabase数据库中检查您试图在节点Users/Drivers下检索的键driverId的值不是布尔值。
uajslkp63#
请检查此代码
vjrehmav4#
我希望你解决了这个问题,如果没有,使用以下代码:
}