首頁 > Java > java教程 > 為什麼我的 FirebaseListAdapter 在更新到 Firebase-UI 3.1 後不推送個人聊天訊息?

為什麼我的 FirebaseListAdapter 在更新到 Firebase-UI 3.1 後不推送個人聊天訊息?

DDD
發布: 2024-12-22 13:30:45
原創
616 人瀏覽過

Why Doesn't My FirebaseListAdapter Push Individual Chat Messages After Updating to Firebase-UI 3.1?

FirebaseListAdapter 未推送聊天應用程式的單一項目- Firebase-UI 3.1

在開發聊天應用程式時,嘗試顯示時可能會出現問題從自訂ListView 中的Firebase 資料庫檢索的訊息。更新依賴項時可能會發生這種情況,特別是將 firebase-ui 庫版本更新為 3.1.0。以下內容解決了此問題的原因並提供了解決方案。

問題

更新到 Firebase-UI 3.1.0 後,用於建構 FirebaseListAdapter 的程式碼不再存在更長時間按預期運行。以前依賴適配器直接實例化的方法已被棄用。

解決方案

要解決此問題,必須調整程式碼以符合Firebase-UI 的新要求。這涉及創建一個 FirebaseListOptions 物件並將其作為參數傳遞給 FirebaseListAdapter 建構函數。

FirebaseListOptions<ChatMessage> options = new FirebaseListOptions.Builder<ChatMessage>()
            .setQuery(FirebaseDatabase.getInstance().getReference("Lobbies").child(leaderID).child("Messages"), ChatMessage.class).setLayout(R.layout.message).build();

    adapter = new FirebaseListAdapter<ChatMessage>(options) {
        @Override
        protected void populateView(View v, ChatMessage model, int position) {
            // Get references to the views of message.xml
            TextView messageText = v.findViewById(R.id.message_text);
            TextView messageUser = v.findViewById(R.id.message_user);
            TextView messageTime = v.findViewById(R.id.message_time);

            // Set their text
            messageText.setText(model.getMessageText());
            messageUser.setText(model.getMessageUser());

            // Format the date before showing it
            messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)",
                    model.getMessageTime()));
        }
    };
登入後複製

監聽器生命週期管理

要在清單檢視中顯示數據,FirebaseListAdapter使用偵聽器來監視 Firebase 資料庫中的變更。此監聽器必須在 Activity 的生命週期內啟動和停止:

@Override
protected void onStart() {
    super.onStart();
    adapter.startListening();
}


@Override
protected void onStop() {
    super.onStop();
    adapter.stopListening();
}
登入後複製

透過實作這些步驟,FirebaseListAdapter 將成功在聊天應用程式的 ListView 中顯示各個訊息。

以上是為什麼我的 FirebaseListAdapter 在更新到 Firebase-UI 3.1 後不推送個人聊天訊息?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板