android - 如何更改firebase数据的值,它databaseRef与不同类中的valueEventListener存在
问题描述
我有带有 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)
}
解决方案
推荐阅读
- python - 如何在python字符串中的子字符串之间查找子字符串?
- c++ - 将本地 OpenCV Mat 变量声明为静态以防止重新分配
- memory-leaks - Kotlin伴随对象中的内存泄漏?
- javascript - 使用 scroll-spy 更改导航栏背景类
- python - scikit-learn 中带有 FeatureUnion 的自定义转换器 mixin
- youtube - videojs-youtube,如果同时设置了开始和结束参数,则两者都不起作用
- java - 如果项目已经有一个运行时类,我如何访问 java Runtime.getRuntime()?
- haskell - `State#` 的规范
- android - 从设备在 Firestore 上创建文档
- mysql - 在一个部门的所有项目中工作的员工