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

从Firebase数据库检索数据时发生Firebase数据库异常

井翰
2023-03-14
users:
{
 Fcm_id: "c68y2j3bwis:APA91bFABxC6W5FmYVCOSmgJiB_-UEqnrmQ...",
 Name: "Vikas Kumar",
 episodes:{
 0: "-Kno0IYdlSjjfFsXkGQ7",
 1: "-Kno0IYdlSjjfFsXkGQ8"
 },
 gender:Male,
 age:14,
 email:"vikas@gmail.com",
}
public class User implements Serializable{

    private String Name;
    private String email;
    private String gender;
    private String Fcm_id;
    private String id;
    private int age;
    private String image;

    private ArrayList<Map<String,Object>> episodes;



public User()
{

}

public ArrayList<Map<String, Object>> getEpisodes() {
    return episodes;
}

public void setEpisodes(ArrayList<Map<String, Object>> episodes) {
    this.episodes = episodes;
}


    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getFcm_id() {
        return Fcm_id;
    }

    public void setFcm_id(String Fcm_id) {
        this.Fcm_id = Fcm_id;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return Name;
    }

    public void setName(String Name) {
        this.Name = Name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

}
 firebasePathMain.child("users").child(auth.getCurrentUser().getUid()).child("episodes").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                String episodeId = dataSnapshot.getValue().toString();
                Log.d(TAG,episodeId);

                firebasePathMain.child("episodes").child(episodeId).child("Participants").child("User_id").addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        final String UserId = dataSnapshot.getValue().toString();
                        Log.d(TAG,UserId);

                        firebasePathMain.child("users").child(UserId).addValueEventListener(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                User user = dataSnapshot.getValue(User.class);
                                user.setId(UserId);

                                Log.d(TAG,user.getName());
                                listPatient.add(user);
                                adapterPatients.notifyDataSetChanged();

                               // adapterPatients.refillAdapter(user);
                              //  listUpdate.add(0, user.getId());

                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });

                        Listpatients.add(UserId);
                        Log.d(TAG,Listpatients.toString());

                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });

            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

共有1个答案

郎雅昶
2023-03-14

您需要使用map ,而不是hashmap

private Map<String, Object> episodes;

public HashMap<String, Object> getEpisodes() {
    return episodes;
}

public void setEpisodes(HashMap<String, Object> episodes) {
    this.episodes = episodes;

}
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference episodesRef = rootRef..child("users").child(auth.getCurrentUser().getUid()).child("episodes");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String key = ds.getKey();
            String value = ds.getValue(String.class)
            Log.d("TAG", "key= " + key + " -> value: " + value);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
episodesRef.addListenerForSingleValueEvent(eventListener);
 key: 0 -> value: -Kno0IYdlSjjfFsXkGQ7
 key: 1 -> value: -Kno0IYdlSjjfFsXkGQ8
 类似资料:
  • 我正在两个标记之间画一条路线,我想保存那条路线。为此,我将包含lat和lng的ArrayList保存在Firebase数据库中。但我在取回航路点时遇到了问题。我是这样插入的: 在检索数据时,我尝试执行以下操作:

  • 我试图显示一个零件的"loc",如果它的零件号我给。以下是数据结构的样子: 活动代码: getLoc是Product类的getter函数,它返回给定curP对应的“loc”。curP部分表示子值。 逻辑对我来说似乎是正确的,但我没有得到输出。我哪里出了问题?

  • firebase数据库最近的更新似乎有一些变化。我的项目在firebase\u数据库:^7.0.0版本下运行良好,但在firebase数据库的更新版本中,我无法更新项目代码。 以下是v7的工作版本 firebase\u数据库^9.0.12上的同一代码出现错误。我收到的错误在`(DataSnapShot snap)async{…}上错误是 无法将参数类型“Future Function(DataSn

  • 我是Android开发的新手,我正在从firebase Realtime数据库中检索所有的子节点,这些节点的约会状态为“已完成”,并且子节点具有当前用户id,但当我移到历史记录时,它没有显示任何内容。有人能帮我解决这个问题吗。我需要尽快解决问题。 Firebase数据库模型

  • 我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地: