2 回答
TA贡献1780条经验 获得超5个赞
假设您有一个带有节点行的数据结构:
-KItqNxLqzQoLnUCb9sJaddclose
time: "Thu Apr 28 17:12:05 PDT 2016"
timestamp: 1461888725444
每个此类节点都有一个timestamp指示其创建时间的属性。最好使用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();
}
});
添加回答
举报