Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
未能将java.util.HashMap类型的值转换为字符串。将字符串转换为映射_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

未能将java.util.HashMap类型的值转换为字符串。将字符串转换为映射

未能将java.util.HashMap类型的值转换为字符串。将字符串转换为映射,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,下面是我的代码。我收到以下错误“com.google.firebase.database.DatabaseException:未能将java.util.HashMap类型的值转换为字符串”。请帮忙 du = FirebaseDatabase.getInstance().getReference().child("storename"); du.keepSynced(true); du.addListenerForSingleValueEvent(new Va

下面是我的代码。我收到以下错误“com.google.firebase.database.DatabaseException:未能将java.util.HashMap类型的值转换为字符串”。请帮忙

 du = FirebaseDatabase.getInstance().getReference().child("storename");
    du.keepSynced(true);
    du.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            GenericTypeIndicator<Map<String, String>> genericTypeIndicator = new GenericTypeIndicator<Map<String, String>>() {
            };
            Map<String, String> map = dataSnapshot.getValue(genericTypeIndicator);
            name.setText(map.get("ownerName"));
            storename.setText(map.get("compName"));
            storeaddr.setText(map.get("address"));
            ph1.setText("Ph: " + map.get("phoneNumber"));
            gst.setText(map.get("gstNum"));
        }

        @Override
        public void onCancelled(DatabaseError error) {
        }
    });
du=FirebaseDatabase.getInstance().getReference().child(“storename”);
保持同步(正确);
du.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
GenericTypeIndicator GenericTypeIndicator=新的GenericTypeIndicator(){
};
Map Map=dataSnapshot.getValue(genericTypeIndicator);
name.setText(map.get(“ownerName”);
storename.setText(map.get(“compName”);
storeaddr.setText(map.get(“地址”);
ph1.setText(“Ph:+map.get(“phoneNumber”);
gst.setText(map.get(“gstNum”);
}
@凌驾
已取消的公共无效(DatabaseError错误){
}
});

您正在从
/storename
加载所有数据。因为下面可能有多个存储,所以您需要遍历
dataSnapshot.getChildren()
以访问每个存储

因此:

du=FirebaseDatabase.getInstance().getReference().child(“storename”);
保持同步(正确);
du.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共无效onDataChange(数据快照快照){
对于(DataSnapshot DataSnapshot:snapshot.getChildren()){
GenericTypeIndicator GenericTypeIndicator=新的GenericTypeIndicator(){
};
Map Map=dataSnapshot.getValue(genericTypeIndicator);
name.setText(map.get(“ownerName”);
storename.setText(map.get(“compName”);
storeaddr.setText(map.get(“地址”);
ph1.setText(“Ph:+map.get(“phoneNumber”);
gst.setText(map.get(“gstNum”);
}
}
@凌驾
已取消的公共无效(DatabaseError错误){
抛出错误。toException();//永远不要忽略错误
}
});

您应该订阅一个存储,而不是订阅包含所有存储的父节点。您应该在其中循环,以获得HashMap列表
du = FirebaseDatabase.getInstance().getReference().child("storename");
du.keepSynced(true);
du.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        for (DataSnapshot dataSnapshot: snapshot.getChildren()) {
            GenericTypeIndicator<Map<String, String>> genericTypeIndicator = new GenericTypeIndicator<Map<String, String>>() {
            };
            Map<String, String> map = dataSnapshot.getValue(genericTypeIndicator);
            name.setText(map.get("ownerName"));
            storename.setText(map.get("compName"));
            storeaddr.setText(map.get("address"));
            ph1.setText("Ph: " + map.get("phoneNumber"));
            gst.setText(map.get("gstNum"));
        }
    }

    @Override
    public void onCancelled(DatabaseError error) {
        throw error.toException(); // never ignore errors
    }
});