【发布时间】:2021-08-17 20:54:30
【问题描述】:
我列出了 Firebase 用户最喜欢的词。当用户按下 favButton 时,它会删除最喜欢的单词。最喜欢的词在数据库中被删除。但收藏列表不会立即更新,删除的单词仍在列表中。当我从另一个活动回来时,它被删除了。我该如何解决这个问题?我把喜欢的词删掉的地方在适配器里面。
class DeleteFavorite: AppCompatActivity() {
private lateinit var database: DatabaseReference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
database = Firebase.database.reference
}
fun deleteFav(keyKelime: String?) {
val database = FirebaseDatabase.getInstance()
val userId = FirebaseAuth.getInstance().currentUser?.uid
val refFavori = database.getReference("/users/${userId}/favorites/${keyKelime}")
refFavori.removeValue().addOnSuccessListener {
Log.e("unfav","Fav geri alındı")
}
}
我的适配器
holder.favButton.setOnClickListener {
if (!isClicked) {
holder.favButton.setBackgroundResource(R.drawable.ic_favorite_border)
val deleteFavorite = DeleteFavorite()
deleteFavorite.deleteFav(kelime.keyKelime)
} else {
isClicked = true
val detayActivity = DetayActivity()
detayActivity.writeNewFav(kelime?.keyKelime.toString())
holder.favButton.setBackgroundResource(R.drawable.ic_favorite_dark)
}
}
还有我最喜欢的词
fun tumFavoriler(kelimelerListe: ArrayList<Kelimeler>, rvFav:RecyclerView){
adapter = KelimelerAdapter(layoutInflater.context,newKelimelerList)//bura kelime istiyoo
rvFav.adapter = adapter
refFavoriler.get().addOnSuccessListener {
for( c in it.children){
val favKelimeId = c.child("kelime_id").value
kelimelerListe.forEach {
if (it.kelime_id == favKelimeId){
newKelimelerList.add(it)
Log.e("it","$newKelimelerList")
}
}
}
adapter.notifyDataSetChanged()
}.addOnFailureListener{
}
【问题讨论】:
标签: android firebase kotlin firebase-realtime-database