【问题标题】:Cycle through firestore query result循环浏览firestore查询结果
【发布时间】:2019-01-11 09:41:01
【问题描述】:

我有一个查询,它定义了我要查找的文档,我如何循环浏览它们并将它们添加到列表中?

到目前为止的查询和循环:

// Create a reference to the cities collection
val facRef = firestoreInstance.collection("faculty")
// Create a query against the collection.
val query = facRef.whereEqualTo("university", list[position].ID)
// Cycle
listFac.clear()
for (document in query) {
    val fac = Faculty()
    fac.ID = document.id
    fac.Desc = document["Desc"].toString()
    listFac.add(fac)
}

【问题讨论】:

  • 这段代码有什么问题?使用listFac.add(fac) 这是你在做什么?你不是将Faculty 类型的对象添加到listFac 列表中吗?
  • @AlexMamo document in query 是错误,query 是红色下划线。说for循环需要有一个迭代器方法
  • "is the error" ok,那么你说的具体错误是什么?
  • @AlexMamo 它只是说循环需要一个迭代器方法
  • 请准确粘贴整个错误。

标签: android kotlin google-cloud-firestore


【解决方案1】:

查询不会立即包含数据库中的文档。您需要首先告诉它检索这些文档,例如通过调用query.snapshots

for (document in query.snapshots) {
    val fac = Faculty()
    fac.ID = document.id
    fac.Desc = document["Desc"].toString()
    listFac.add(fac)
}

另见:

【讨论】:

    【解决方案2】:

    当您调用查询时,您需要给它时间来检索结果,例如,在快照方法中执行您想要执行的操作

    for (document in query.snapshots) {
    val fac = Faculty()
    fac.ID = document.id
    fac.Desc = document["Desc"].toString()
    listFac.add(fac)
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-20
      • 2016-11-18
      相关资源
      最近更新 更多