Gas*_*lén 7 android kotlin firebase google-cloud-firestore
我有一个非常奇怪的问题,我已运行调试器并单步执行代码以查看 Firestore 中的每个元素
我的 firestore 数据库中有一个产品列表
结构
shop -> shopId -> products -> productList
Run Code Online (Sandbox Code Playgroud)
我有一个数据类如下
@Parcelize
data class Producto(
val imagenProducto: String = "",
val nombreProducto: String = "",
val descProducto: String = "",
val precio: Int = 0,
val hasDescuento: Boolean = false,
val tipoDescuento: Double = 0.0,
val isCombo: Boolean = false
) : Parcelable
Run Code Online (Sandbox Code Playgroud)
现在,我用来过滤的代码isCombo
创建两个列表,其中一个列表将包含所有产品(如果需要,可享受折扣)和组合(如果布尔isCombo
值设置为 true)
现在,这很奇怪,因为我的代码获取所有这些文档并将其发送到我的视图
suspend fun getProductosList(comercioId:String):Resource<MutableList<Producto>>{
val productList = mutableListOf<Producto>()
val snapshot = FirebaseFirestore.getInstance().collection("comercios").document(comercioId).collection("products").get().await()
for(producto in snapshot){
productList.add(producto.toObject(Producto::class.java))
}
return Resource.Success(productList)
}
Run Code Online (Sandbox Code Playgroud)
这里我有一个子集合,其中包含商店(comercio)的最终产品。
因此,发生的事情是这样的,在我获取所有这些文档后,列表中的每个元素的数据都出现在我的视图中,但产品的一个值并未按预期出现。
我在一个文档中占有一席之地isCombo = true
,但是当这涉及到我的应用程序时,它将此值设置为 false,但另一个布尔值hasDescuento
具有正确的值
这是输出,这就是我将数据存储在我的参考中的方式
这里isCombo
设置为true
现在,这就是我检索此文档时的最终结果
所以,这里isCombo
是 false,但我的另一个布尔值 hasDecuento 带有来自数据库的正确值(对于另一个不同的产品),我怀疑我的数据类中的 Parcelize 注释,但所有其他不是 isCombo 的数据都正常获取
会发生什么?
Rod*_*ues 13
我遇到了同样的问题,我找到了这个解决方案
data class Producto(
val imagenProducto: String = "",
val nombreProducto: String = "",
val descProducto: String = "",
val precio: Int = 0,
val hasDescuento: Boolean = false,
val tipoDescuento: Double = 0.0,
@field:JvmField // use this annotation if your Boolean field is prefixed with 'is'
val isCombo: Boolean = false
)
Run Code Online (Sandbox Code Playgroud)
https://firebase.google.com/docs/firestore/manage-data/add-data#kotlin+ktx_3
似乎在Combo在 Firestore 中以不同方式映射之前的属性,并且仅映射为组合而不是,因此,将属性的名称更改为,清理并重建项目并且它起作用了。isCombo
hasCombo
感谢 Alex Firebase Firestore toObject 在布尔属性映射上失败
并将boolean
在文档中填写数据类型注释的建议。
https://firebase.google.com/docs/firestore/manage-data/data-types
归档时间: |
|
查看次数: |
3630 次 |
最近记录: |