循环浏览firestore查询结果
Posted
技术标签:
【中文标题】循环浏览firestore查询结果【英文标题】:Cycle through firestore query result 【发布时间】: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 它只是说循环需要一个迭代器方法
请准确粘贴整个错误。
【参考方案1】:
查询不会立即包含数据库中的文档。您需要首先告诉它检索这些文档,例如通过调用query.snapshots
:
for (document in query.snapshots)
val fac = Faculty()
fac.ID = document.id
fac.Desc = document["Desc"].toString()
listFac.add(fac)
另见:
Firestore queries on Flutter documentation for Cloud Firestore in FlutterFire 这个tutorial on building a Flutter app with Firestore。【讨论】:
【参考方案2】:当您调用查询时,您需要给它时间来检索结果,例如,在快照方法中执行您想要执行的操作
for (document in query.snapshots)
val fac = Faculty()
fac.ID = document.id
fac.Desc = document["Desc"].toString()
listFac.add(fac)
【讨论】:
以上是关于循环浏览firestore查询结果的主要内容,如果未能解决你的问题,请参考以下文章