【问题标题】:How to create a list of values in Firestore with Kotlin [duplicate]如何使用 Kotlin 在 Firestore 中创建值列表 [重复]
【发布时间】:2019-10-24 05:52:45
【问题描述】:

我有一个名为:Players 的集合 里面的每个文档都有一个 posx 和 posy 的值

我想为每个文档创建一个包含数组的数组 喜欢:[[posx1,posy1][[posx,posy2]...]

如果我在 .addOnSuccesListener 中打印,它可以工作并打印列表,但是 当我在外面时,我尝试打印它返回空的列表

我做错了什么?谢谢

val myDB = FirebaseFirestore.getInstance()
var posiciones = ArrayList<Array<String>>()

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    myDB.collection("players")
        .get()
        .addOnSuccessListener { result ->
            for (document in result) {
                posiciones.add(
                    arrayOf(
                        document.get("posx").toString(),
                        document.get("posy").toString()
                    )
                )

            }
        }
        .addOnFailureListener { exception ->
            Log.d(ContentValues.TAG, "Error getting documents: ", exception)
        }
    //i get []
    println("Testing: "+ posiciones)

【问题讨论】:

    标签: android database kotlin google-cloud-firestore


    【解决方案1】:

    那是因为get异步立即返回。在其他任何事情发生之前,您的代码将继续执行 printlnposiciones 届时将为空。然后,一段时间后,当查询完成并且数据库结果可用时,将调用成功回调,并填充数组。只有在收到回调后,才可以读取posiciones 的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 2023-02-24
      • 1970-01-01
      相关资源
      最近更新 更多