gpt4 book ai didi

java - 如何管理 Firebase Firestore 中的可选值并避免数据库中出现空字段?

转载 作者:行者123 更新时间:2023-12-02 09:08:57 24 4
gpt4 key购买 nike

在我的上下文中,存在可选值的可能性。

例如,在此数据库中,iVisperas 字段在多种情况下可以为空。我认为保留空字段是一种不好的做法(?)。

enter image description here

在我的代码中,我将快照映射到一个类。

我不想将字段 iVisperas 保留为 Firestore 中的空字段,但我不知道如何从模型类中确定该字段是否存在。

我如何才能实现这一目标。这是文档中我的模型类。实际上,在 getTituloVisperas 方法中,我检查字段 iVisperas 是否为空。如果我只想在包含数据时创建 iVisperas 字段,我如何将其管理到模型类中?

public class MetaLiturgia {
private String fecha;
private int tiempo;
private String semana;
private String mensaje;
private String salterio;
private int color;
private String meta;
private String titulo;
private String iVisperas;

private int weekDay;

public MetaLiturgia() {
}

public String getTituloVisperas() {
if (iVisperas.equals("")){
return titulo;
}else{
return iVisperas;
}

}
//...
}

最佳答案

For example, in this database the field iVisperas can be empty in multiple cases.

看到 MetaLiturgia 类中的所有字段都设置为私有(private),我假设您正在使用构造函数和公共(public) getter。如果您希望您的 iVisperas 属性不包含任何值,那么只需在构造函数中实例化它或创建另一个没有它的构造函数。

If I want to create iVisperas field only when it contains data, how I can manage that into the model class?

在这种情况下,您应该使用 map update仅当您的 iVisperas 属性的值可用时才生成该文档。

I think is a bad practice to keep empty fields (?).

只要不需要,保留空字段就没有任何好处。请记住,每个属性都计入 1 MiB (1,048,576 bytes)文档的最大大小。

根据 Suhas Ch 的回答,还请注意,空的 String 类型的属性("")和包含 null 的属性占用相同的数量文档中的空间。

编辑:

另一种可能的解决方案是在模型 (MetaLiturgia) 类内部分配一个默认值,在本例中为 0

关于java - 如何管理 Firebase Firestore 中的可选值并避免数据库中出现空字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59564230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com