【发布时间】:2021-08-14 22:04:37
【问题描述】:
在我的项目中,单词是从数据库中提取并列出的。用户在谷歌注册。我把他们最喜欢的词保存在数据库中。但我希望用户删除收藏夹。我无法给出正确的参考。我获取他在下面单击的单词的 id 并检查它是否在最喜欢的单词中。如果是喜欢的话,应该删掉。
private fun deleteFav(kelime_id: String) {
val userId = FirebaseAuth.getInstance().currentUser?.uid
val refUser = database.child("/users/${userId}/")
val key = refUser.push().key
val refFavori = refUser.child("/favorites/")
refFavori.addValueEventListener(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
for (childSnapshot in dataSnapshot.children) {
val favKelimeId = childSnapshot.child("kelime_id").value
Log.i("MEsagge", "inside for")
if (kelime_id == favKelimeId) {
Log.i("Mesagge", "inside if")
Log.i("Mesagge", "${childSnapshot.value}")
refFavori.child("$favKelimeId").removeValue()
}
//Log.i("Database", "child key = $childSnapshot.key")
//Log.i("Database", "fav key = $favKelimeId.key")
}
}
override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException())
// ...
}
})
}
##
【问题讨论】:
-
您共享的代码有什么问题?乍一看还不错。因此,如果您在调试器中逐行执行它,哪一行是第一行没有按照您的预期执行的操作?
标签: firebase kotlin firebase-realtime-database