gpt4 book ai didi

数据更改后的 Android FirebaseDatabase,值显示两次

转载 作者:行者123 更新时间:2023-11-29 14:58:53 26 4
gpt4 key购买 nike

<分区>

如果我的数据库发生变化,总是会显示旧值和新值。我怎样才能删除旧的并只显示新的。这是我的代码:

 private void downloadAccepted(final String plz) {
String userid =
FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(userid).child("acceptedEvents");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {

for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
downloadAcceptedDetails(plz, snapshot.getKey().toString());
}
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}
private void downloadAcceptedDetails(final String plz, final String id){

DatabaseReference refi = FirebaseDatabase.getInstance().getReference().child("Events").child(plz).child(id);
refi.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Long millis = new Date().getTime();
if (dataSnapshot.getChildrenCount() > 0 ) {
if (Long.parseLong(dataSnapshot.child("ts").getValue().toString()) > millis) {
EventObject eo = new EventObject(dataSnapshot.child("ts").getValue().toString(), dataSnapshot.child("name").getValue().toString(), dataSnapshot.child("street").getValue().toString(), dataSnapshot.child("plz").getValue().toString());
accepted.add(eo);
try{
((globalVariable) getActivity().getApplication()).setAdapter2(adapter2);
}catch (Exception e){

}
adapter2.notifyDataSetChanged();
} else {
removeValuesMyIdeas( plz, id);
}

}
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}

我的 downloadAccepted 中的 onData Change 总是被调用。我已经尝试在之前的方法中执行以下操作:

accepted = new ArrayList();

不幸的是,如果我将此行添加到两种方法之一,则始终不会显示任何内容。

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