Android Firebase数据库中存在重复密钥

Android Firebase数据库中存在重复密钥,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,实际上,我正在实现一个Firebase数据库来为我的android base存储用户 基本上,这是我的用户bean: public class User { private String idAccount; private String firstname; private String lastname; private String pseudo; private Address address; private List<Quali

实际上,我正在实现一个Firebase数据库来为我的android base存储用户

基本上,这是我的用户bean:

public class User {

    private String idAccount;
    private String firstname;
    private String lastname;
    private String pseudo;
    private Address address;
    private List<Qualification> qualification;
    private boolean isWorker;

    // Constructors + getters + setters

}
所以,这是非常简单的,它的工作,但我有一个小问题。如果我检查数据库:,我可以看到idAccount是重复的

我知道这是完全正常的!但是我正在寻找一种简单的方法来删除数据库中的这个字段
idAccound
,而不必在使用
setValue(user)
时明确地精确显示所有字段

有人有办法吗


谢谢

您需要使用
@Exclude
注释

公共类用户{
@排除
私有字符串idAccount;
私有字符串名;
私有字符串lastname;
私有字符串伪;
私人地址;
私人名单资格;
私人工人;
//构造函数+getter+setter
}

我不会这样做,但就是这样。

要从整个数据库中删除该字段,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            ds.child("idAccount").getRef().removeValue();
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
usersRef.addListenerForSingleValueEvent(eventListener);
之后,只需在模型类的字段前面添加
@Exclude
注释,如下所示:

@Exclude
private String idAccount;

如果您仍在使用应用程序进行测试,还可以删除
私有字符串idAccount全部。

是的,这就是我要找的!
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            ds.child("idAccount").getRef().removeValue();
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
usersRef.addListenerForSingleValueEvent(eventListener);
@Exclude
private String idAccount;