DatabaseException: Can't convert object of type java.lang.String to type

前端 未结 7 662
北海茫月
北海茫月 2020-12-03 18:50

I\'ve looked at a few other answers for similar problems but don\'t understand why mine isn\'t working.

I\'m trying to get my app to read commands from Firebase and

7条回答
  •  误落风尘
    2020-12-03 19:13

    Alex posted the right solution for me, but since I was using firebase-ui and kotlin, the code used is different. More info here

        val options = FirebaseRecyclerOptions.Builder()
                .setQuery(query, ChatMessage::class.java)
                .build()
    
        // equivalent options object with manual parsing, use it to debug which field gives error
        val options = FirebaseRecyclerOptions.Builder()
                .setQuery(query, object : SnapshotParser {
    
                    override fun parseSnapshot(snapshot: DataSnapshot): ChatMessage {
    
                        val senderId = snapshot.child("senderId").getValue(String::class.java)
                        val receiverId = snapshot.child("receiverId").getValue(String::class.java)
                        val senderName = snapshot.child("senderName").getValue(String::class.java)
                        val text = snapshot.child("text").getValue(String::class.java)
                        val timestamp = snapshot.child("timestamp").getValue(Long::class.java)
    
                        return ChatMessage(senderId, receiverId, senderName, text, timestamp)
                    }
    
                })
                .build()
    
    
        adapterMessages = object : FirebaseRecyclerAdapter(options) {
    
            override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ChatHolder {
    
                val rootView = LayoutInflater.from(parent.context).inflate(R.layout.chat_message_item, parent, false)
    
                return ChatHolder(rootView)
            }
    
            override fun onBindViewHolder(holder: ChatHolder, position: Int, model: ChatMessage) {
    
                holder.populateItem(model)
            }
        }
    

提交回复
热议问题