Firebase - 使用setValue(Object)时,不要将特定变量存储在数据库中;

时间:2016-07-29 17:40:28

标签: java json firebase

我正在努力减少数据库中的数据量。

我有一个名为user的类,如下所示:

 class User {

private Position pos;
private String uid;}

现在我的数据库看起来像:

`uid{
    pos{ L1=value,
         L2=value
       }
   uid=value
}`

非常小,实际上我甚至不想使用额外的uid,因为密钥是uid,它是唯一的标识符。

现在,我想在类中添加一个名为working的附加变量。

`class User{
private Position pos;
private String uid;
private boolean working;
}`

使用ref.setValue(User),数据库现在变为:

`uid{
    pos{ L1=value,
         L2=value
       }
   uid=value,
   working=value
}`

我不需要将工作变量存储在数据库中,这只是发送不必要的信息。我怎么不发送它,但保留在我的用户类?附加的String uid也是如此。我也希望从数据库中删除它,但是将它保留在类中。

2 个答案:

答案 0 :(得分:5)

查看Dates Value 01/01/2016 0.360588739 01/02/2016 0.595765265 *** 01/03/2016 0.448855962 01/04/2016 0.295765265 01/05/2016 -0.24470058 *** 01/06/2016 -0.169958947 01/07/2016 -0.216953024 01/08/2016 -0.287801531 01/09/2016 -0.328458361 01/10/2016 -0.468009532 01/11/2016 -0.368107924 01/12/2016 -0.500611564 01/13/2016 -0.506701117 01/14/2016 -0.564366906 01/15/2016 -0.737858078 01/16/2016 -0.764897486 @Exclude

https://firebase.google.com/docs/reference/android/com/google/firebase/database/Exclude

IgnoreExtraProperties

答案 1 :(得分:0)

如果您使用的是 firebase,则在布尔变量的 getter 方法上方更改 @Exclude 的位置 working

public class User {
    private Position pos;
    private String uid;
    private boolean working;

    @Exclude
    public boolean isWorking() {
        return working;
    }

    public void setWorking(boolean working) {
        this.working = working;
    }
}