【问题标题】:Firebase database realtime are ignoring some valuesFirebase 数据库实时忽略了一些值
【发布时间】:2018-11-14 21:01:00
【问题描述】:

我有一个 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 仍然错过之前安装了应用程序。

【问题讨论】:

  • 你能把你读到的代码显示出来吗?
  • @ChristopheGudlake 完成

标签: android firebase firebase-realtime-database kotlin


【解决方案1】:

我阅读了快照,所有字段都被读取了,除了新字段 likes

在您在装有旧版应用的设备上使用该应用时发生。

为什么会有这种行为?

发生这种情况是因为您的应用程序的早期版本不包含包含新添加的 likes 字段的 Game 类的更新版本。也就是说,老版本只能读写知道的属性。

要解决这个问题,您应该将旧版本更新为新版本,以便它可以看到新添加的属性。

【讨论】:

  • 我已经更新了gradle文件的versionCode和versionName,结果还是一样,likes字段还是不见了。
  • 你应该只更新 gradle 文件的 versionCode 和 versionName 因为它不能解决你的问题,你应该更新整个应用程序。所有设备都应具有您的应用程序的最新版本,其中包括您修改后的 Game 类,该新属性存在于其中。你试过了吗?
  • 我正在两台设备上运行更新后的代码。一个是新安装的,一切正常,但第二个与第一个具有相同的代码,但字段 likes 仍然缺失。
  • 是的,这是正确的行为。如果不将应用程序更新到第二台设备上的最新版本,问题将持续存在。所以要解决这个问题,正如我已经提到的,将应用程序更新到第二台设备上的最新版本,你的问题就会得到解决。就是这样!
  • 当我说第一个设备与第二个设备具有相同的代码时,我认为很明显我的意思是第二个设备已更新到最后一个代码版本。
猜你喜欢
  • 2017-06-16
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 2020-11-04
  • 2020-01-28
  • 2017-01-08
  • 2018-06-25
  • 2013-08-10
相关资源
最近更新 更多