亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

com.google.firebase.database.DatabaseException:

com.google.firebase.database.DatabaseException:

開滿天機 2022-06-04 09:34:03
com.google.firebase.database.DatabaseException:無法將 java.lang.String 類型的對象轉換為類型...還有一個錯誤沒有連接適配器;跳過布局 - 但似乎不是嚴重錯誤 ///// 請幫助,我是編程新手,這個項目對我來說非常重要。/////我的消息活動public class MessageActivity extends AppCompatActivity {CircleImageView ivProfileImage;TextView tvUsername;ImageButton btnSend;EditText text_send;MessageAdapter messageAdapter;List<Chat> mChat;FirebaseUser firebaseUser;DatabaseReference databaseReference;RecyclerView recycler_view;Intent intent;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_message);    Toolbar toolbar = findViewById(R.id.toolbar);    setSupportActionBar(toolbar);    getSupportActionBar().setTitle("");    getSupportActionBar().setDisplayHomeAsUpEnabled(true);    toolbar.setNavigationOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            finish();        }    });    recycler_view = findViewById(R.id.recycler_view);    recycler_view.setHasFixedSize(true);    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext());    linearLayoutManager.setStackFromEnd(true);    recycler_view.setLayoutManager(linearLayoutManager);    ivProfileImage = findViewById(R.id.ivProfileImage);    tvUsername = findViewById(R.id.tvUsername);    btnSend = findViewById(R.id.btnSend);    text_send = findViewById(R.id.text_send);    intent = getIntent();    final String userid = intent.getStringExtra("userid");    firebaseUser = FirebaseAuth.getInstance().getCurrentUser();    });
查看完整描述

2 回答

?
慕哥9229398

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節點下。

http://img1.sycdn.imooc.com//629ab6be000105ee05420136.jpg

要解決這個問題,請刪除節點下存在的那些屬性并使用以下代碼行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);

你的問題將得到解決。


查看完整回答
反對 回復 2022-06-04
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

您正在嘗試將字符串文本轉換為聊天類型。

用這個 - String chat = snapshot.getValue(String.class);

代替 Chat chat = snapshot.getValue(Chat.class);


查看完整回答
反對 回復 2022-06-04
  • 2 回答
  • 0 關注
  • 81 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號