Я пытаюсь реализовать FirebaseRecyclerAdapter в моем приложении, но когда я хочу заполнить свое представление переработчика данными, тогда приложение cra sh и я получаю "не могу преобразовать объект типа java .lang.string в тип Друзья "ошибка. Я не понимаю, что я сделал не так, потому что у меня есть представление о переработчике пользователя, и я заполнил его таким же образом, и у меня нет проблем там. Я потратил несколько часов, чтобы решить эту проблему самостоятельно, но мои усилия ничего не принесли.
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mFireBaseAuth = FirebaseAuth.getInstance()
currentUser = mFireBaseAuth!!.currentUser!!.uid
mFriendsDatabaseRef =
FirebaseDatabase.getInstance().reference.child("Friends").child(currentUser!!)
mUsersDatabaseRef = FirebaseDatabase.getInstance().reference.child("Users")
recyclerView.layoutManager = LinearLayoutManager(context)
}
override fun onStart() {
super.onStart()
val options: FirebaseRecyclerOptions<Friends> = FirebaseRecyclerOptions.Builder<Friends>()
.setQuery(mFriendsDatabaseRef!!, Friends::class.java)
.build()
adapter = MyFirebaseRecyclerAdapter(options)
recyclerView.adapter = adapter
adapter!!.startListening(
}
Адаптер onBindViewHolder:
override fun onBindViewHolder(holder: FriendsViewHolder, position: Int, model: Friends) {
holder.setStatus(model.date)
val listUserId = getRef(position).key
mUsersDatabaseRef!!.child(listUserId!!)
.addValueEventListener(object : ValueEventListener {
override fun onDataChange(p0: DataSnapshot) {
val userName = p0.child("name").value.toString()
val userImage = p0.child("image").value.toString()
if (p0.hasChild("online")) {
val userOnline = p0.child("online").value.toString()
holder.setUserOnline(userOnline)
}
holder.setName(userName)
holder.setImage(userImage)
}
....
класс Друзья:
ublic class Friends {
private String date;
public Friends(){
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public Friends(String date){
this.date = date;
}