java – 如何在“n”天后删除firebase数据
发布时间:2020-12-15 04:47:56 所属栏目:Java 来源:网络整理
导读:我想删除我的Friebase中的一些旧数据.我知道这个问题在这里问了很多,但我仍然很难让它发挥作用. 我试试这里找到的解决方案: Firebase chat – removing old messages 但这已被弃用了. 所以我这样试试: ChildEventListener childEventListener = new ChildE
我想删除我的Friebase中的一些旧数据.我知道这个问题在这里问了很多,但我仍然很难让它发挥作用.
我试试这里找到的解决方案: Firebase chat – removing old messages 但这已被弃用了. 所以我这样试试: 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); } 解释: int date = c.get(Calendar.DATE); marker.setSavedate(date); 我希望在30天后删除Firebase中的对象.因此,我尝试从今日日期中减去30天,而不是将其与来自对象的已保存项进行比较,如果它等于我将从Firebase中删除该对象. 对于Substraction我参考以下答案: How to subtract X days from a date using Java calendar? 但它不起作用.如果我今天向Firebase添加一个对象,那么两个日期总是相等的. 我究竟做错了什么? 解决方法
假设您有一个带有节点的数据结构:
-KItqNxLqzQoLnUCb9sJaddclose time: "Thu Apr 28 17:12:05 PDT 2016" timestamp: 1461888725444 每个此类节点都有一个时间戳属性,指示何时创建它.您最好将此属性设置为using Server Timestamp. 使用此数据结构,您可以轻松构建仅返回超过30天的项目的查询并将其删除: long cutoff = new Date().getTime() - TimeUnit.MILLISECONDS.convert(30,TimeUnit.DAYS); Query oldItems = ttlRef.orderByChild("timestamp").endAt(cutoff); oldItems.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { for (DataSnapshot itemSnapshot: snapshot.getChildren()) { itemSnapshot.getRef().removeValue(); } } @Override public void onCancelled(DatabaseError databaseError) { throw databaseError.toException(); } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |