Android Firebase数据库中存在重复密钥
实际上,我正在实现一个Firebase数据库来为我的android base存储用户 基本上,这是我的用户bean: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
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;