Как изменить значение данных firebase, это databaseRef существует с ValueEventListener в другом классе

#android #firebase #kotlin

#Android #firebase #kotlin

Вопрос:

У меня есть фрагмент с RatingBar. Если использовать ссылку на базу данных здесь, данные изменятся, но когда я вернусь и попытаюсь снова ввести сбой приложения, потому что в этот момент добавляются только данные о строке рейтинга

Я пробовал интерфейс, но когда я это делаю, фрагмент имеет:

Строка двоичного XML-файла # 7: ошибка, раздувающая фрагмент класса

 //Fragment
override fun onRatingChanged(ratingBar: RatingBar?, rating: Float, fromUser: Boolean) {

        // val mDatabase: DatabaseReference = FirebaseDatabase.getInstance().getReference("uploads")
        //val itemReference = mDatabase.child(objectId)
        //itemReference.child("stars").setValue(rating.toDouble())
        setStars(rating.toDouble())
    }
  
 //Activity
        mDatabaseRef = FirebaseDatabase.getInstance().getReference("uploads")

        mDatabaseRef.addValueEventListener(object : ValueEventListener {
            override fun onDataChange(dataSnapshot: DataSnapshot) {
                mUploads.clear()
                for (postSnapshot in dataSnapshot.children) {
                    val upload: Upload = postSnapshot.getValue(Upload::class.java)!!
                    (mUploads).add(upload)
                }

                mAdapter.notifyDataSetChanged()

                mProgressCircle.visibility = View.INVISIBLE
            }

            override fun onCancelled(databaseError: DatabaseError) {
                Toast.makeText(this@ImagesActivity, databaseError.message, Toast.LENGTH_SHORT).show()
                mProgressCircle.visibility = View.INVISIBLE
            }
        })

    }
//My interface try
    override fun modifyItemState(itemObjectId: String, stars: Double) {
        // val mDatabase: DatabaseReference = FirebaseDatabase.getInstance().getReference("uploads")
        val itemReference = mDatabaseRef.child(itemObjectId)
        itemReference.child("stars").setValue(stars)
    }
  

это было изменение с 0
когда я хочу вернуться к этому fragmentactivity, создаются звезды

Комментарии:

1. Пожалуйста, укажите, какие именно данные вы хотите изменить. Пожалуйста, добавьте свою структуру базы данных.

2. @AlexMamo В этом случае только звезды: double