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"
但不幸的是,這不是您的數據庫中的樣子??矗贑hats節點下,沒有推送的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);
添加回答
舉報