在Firestore中使用对象表示或字符串更可靠

时间:2018-11-22 13:30:12

标签: android firebase kotlin google-cloud-firestore

我有一个Firebase Firestore产品集合(125个及以后的产品)。每个产品文档都有大约18个属性(名称,价格,库存等)。我可以使用以下方法成功获取所有文档:

val product = document.toObject(Product::class.java)

但我可以使用:

val name = document.getString("name")

更推荐哪个?

2 个答案:

答案 0 :(得分:1)

根据您只有125个项目的实际结构,可以使用所需的每个项目。如果您的馆藏数量增长到足以包含大量文档的程度,则可能是您不应该使用第一种方法的原因。 Cloud Firestore使用反射,因此在文档数量非常多的情况下,您的应用可能会变慢。

此外,如果只需要显示一个或两个属性,为什么要全部使用它们?因此,如果您真的只需要这些字段的子集,请使用第二种方法。

因此,即使我们谈论的是一个很小的数据集(也许不是您的情况),但我看到的数据却没有以开发人员想要的方式正确格式化。

答案 1 :(得分:1)

在开发过程中,我经常发现使用Document类的直接访问器方法从文档中获取字段更方便。在这段时间里,我仍在弄清楚每个实体具有哪些精确的字段和类型。

如果/一次所有文档都具有相同的字段,并且您的数据模型相当稳定,我建议定义一个Product类以用Java / Kotlin代码对文档中的字段进行建模。