【发布时间】:2021-07-27 23:23:11
【问题描述】:
以下是我的Firestore 数据库的结构。我想从集合'products'中获取所有文档,其中'pin_code'(是一个数组)与我拥有的pin码列表匹配。密码列表来自我通过以下代码设法获得的集合“地址”。但我无法从“产品”集合中获取与 PIN 码列表匹配的文档。
以下是我必须从集合“地址”中获取密码列表的代码
fun getPins(context: DashboardFragment) {
mFireStore.collection("addresses")
.whereEqualTo("user_id", getCurrentUserID())
.get()
.addOnSuccessListener { document ->
val codeList: MutableList<String> = mutableListOf()
for (i in document.documents) {
val code = i.toObject(Address::class.java)
code!!.user_id = i.id
codeList.add(code.pinCode)
}
context.getProductListBasedOnPin(codeList)
}
.addOnFailureListener { e ->
}
}
我尝试使用以下代码从集合“产品”中获取数据。但是使用此代码,只有当我的“pin_code”不是数组时,我才能获得产品列表。但由于某种原因,我不得不将 pin_code 设为数组,并且无法获取产品列表。
fun getProductListBasedOnPin(pinList: List<String>?) {
val mFireStore = FirebaseFirestore.getInstance()
mFireStore.collection("products")
.whereIn("pin_code", pinList!!)
.get()
.addOnSuccessListener { document ->
for (i in document.documents) {
val product = i.toObject(Product::class.java)!!
product.product_id = i.id
srchProductsList.add(product)
}
srchTempProductsList.addAll(srchProductsList)
if (newView == "ListView") {
successDashboardItemsListListView(srchTempProductsList)
} else {
successDashboardItemsList(srchTempProductsList)
}
}
.addOnFailureListener {
}
}
有人可以帮我解决这个问题吗?
谢谢。
【问题讨论】:
标签: android firebase kotlin google-cloud-firestore