【问题标题】:How to save large arrayList in the same order as it is to firebase database in kotlin?如何以与kotlin中的firebase数据库相同的顺序保存大型arrayList?
【发布时间】:2021-10-23 17:33:56
【问题描述】:

我正在尝试将数据列表保存到 Kotlin 中的 Firebase 实时数据库。但是当我尝试保存时,订单会被打乱如下。

这是我的代码。这里的locationlist 是包含我要按相同顺序保存的位置列表的数组。但是当我尝试保存第一个元素之后,会显示第 10 个元素。模式就这样继续下去。

 ref.child(pk).child("location${count+1}").setValue(locationList).addOnCompleteListener {

                Toast.makeText(requireContext() ,"success$pk", Toast.LENGTH_SHORT).show()


            }

【问题讨论】:

  • 您要查找的确切顺序是什么?
  • like 0,1,2,3...etc 以升序到最后是实际的arraylist 顺序。
  • 您希望在控制台或代码中执行此命令?
  • 在控制台中。

标签: android firebase kotlin firebase-realtime-database arraylist


【解决方案1】:

如果您在代码中查找升序,以下行将保留数组中存在的顺序。假设您在每个对象中都有一个属性“名称”,请尝试以下代码:

    val rootRef = FirebaseDatabase.getInstance().reference
    val locationRef = rootRef.child("location2")
    locationRef.get().addOnCompleteListener { task ->
        if (task.isSuccessful) {
            for (ds in task.result.children) {
                val name = ds.child("name").getValue(String::class.java)
                Log.d(TAG, name!!)
            }
        } else {
            Log.d(TAG, task.exception!!.message!!) //Don't ignore potential errors!
        }
    }
}

如果您想在 Firebase 控制台中更改顺序,请注意这是不可能的。从以下帖子中检查我的答案中的解决方法:

【讨论】:

  • 输入locationRef.get()时出错。
  • 什么错误?显示代码或屏幕截图。
  • 我必须添加一个 gradle 构建依赖项。现在一切正常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
  • 2021-04-20
  • 2019-12-29
相关资源
最近更新 更多