我想从Firebase中删除一些旧数据,但我很难使它工作。
我尝试了以下解决方案:Firebase聊天-删除旧消息
但这并不被弃用。
所以我这样尝试:
ChildEventListener childEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -30);
Log.d(TAG, "onChildAdded:" + dataSnapshot.getKey());
String key = dataSnapshot.getKey();
Marker retrievemarker =dataSnapshot.getValue(Marker.class);
Calendar t3 = new
GregorianCalendar
(c.get(Calendar.YEAR),
c.get(Calendar.MONTH),
retrievemarker.getSavedate());
int date1= calendar.get(Calendar.DATE);
int date2= t3.get(Calendar.DATE);
Log.d("date1",""+date1);
Log.d("date2",""+date2);
if( date1 == date2 ){
myRef.child(key).setValue(null);
}
作为说明:在Firebase中,我保存了一个名为Marker的对象,该对象有一个变量来存储保存的内容,即该对象在Firebase中的保存日期。
int date = c.get(Calendar.DATE);
marker.setSavedate(date);
我想在30天后删除Firebase中的对象。因此,我尝试从“今天的日期”中减去30天,而不是将其与“对象”中的“保存对象”进行比较(如果等于),我将从Firebase中删除该对象。
对于减法,我指的是以下问题的答案:如何使用Java日历从日期中减去X天?
但这是行不通的。如果我今天将一个对象添加到Firebase,则两个日期始终相等。所以我想减法不起作用。
我究竟做错了什么?
翻阅古今