2 回答
TA贡献1877条经验 获得超6个赞
使用以下代码行时:
databaseReference.child("Chats").push().setValue(hashMap);
DatabaseReference 的push()方法:
创建对自动生成的子位置的引用。
这基本上意味着,您正在使用节点Chat下的自动生成键创建一个新对象Chats,在您的架构中应该如下所示:
Firebase-root
|
--- Chats
|
--- pushedId
|
--- message: "fggfg"
|
--- receiver: "0AQZ ... FK02"
|
--- sender: "CqjS ... QqE3"
但不幸的是,这不是您的数据库中的样子。看,在Chats节点下,没有推送的id,你的属性直接存在于Chats节点下。
要解决这个问题,请删除节点下存在的那些属性并使用以下代码行Chats添加对象:Chat
Chat chat = new Chat(sender, receiver, message);
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference chatsRef = rootRef.child("Chats");
String key = chatsRef.child("Chats").push().getKey();
chatsRef.child(key).setValue(chat);
你的问题将得到解决。
TA贡献1816条经验 获得超6个赞
您正在尝试将字符串文本转换为聊天类型。
用这个 - String chat = snapshot.getValue(String.class);
代替 Chat chat = snapshot.getValue(Chat.class);
添加回答
举报