我有一个android应用程序和firebase实时数据库。
我有一个名为Game
的类,它具有以下描述的属性。
最近,我决定添加一个名为likes
的新属性,但是当我读取快照时,除了新字段likes
为什么会这样?
data class Game (
val id: String? = null,
val title: String? = null,
val release_date: String? = null,
val gender: String? = null,
val image: String? = null,
val description: String? = null,
val rating: Long? = null,
var likes: Long? = null,
var liked: Boolean? = null,
val video: String? = null,
val plataformas: String? = null
)
private val gamesVEL : ValueEventListener by lazy {
object : ValueEventListener{
override fun onCancelled(databaseError: DatabaseError) {}
override fun onDataChange(dataSnapshot: DataSnapshot) {
Log.d("firebase","jejejejje")
juegos.clear()
dataSnapshot.children.forEach {
val game = it.getValue(Game::class.java)
juegos.add(game!!)
}
queryStars.addListenerForSingleValueEvent(starsVEL)
}
}
}
在新设备中安装可以解决问题,但在较旧的设备中不能解决。我的意思是,如果我仍然错过了字段likes
之前安装的应用程序。
答案 0 :(得分:1)
我读取了快照,除了喜欢的新字段之外,所有字段均被读取
在具有较旧版本应用程序的设备上使用该应用程序时,这是唯一。
为什么会这样?
之所以发生这种情况,是因为您的应用程序的早期版本未包含您的Game
类的更新版本,该类包含新添加的likes
字段。换句话说,旧版本只能读取和写入可识别的属性。
要解决此问题,您应该将旧版本更新为新版本,以便可以看到新添加的属性。