【发布时间】:2016-12-23 18:19:11
【问题描述】:
我一直在努力使这项工作从
How to delete firebase data after "n" days
但它不适合我。
这就是我正在做的,
在我的“A”活动中,我有一个按钮可以保存这块数据,并带有一个保存时间戳值的“timeStamp”子项。 (.setValue(ServerValue.TIMESTAMP);)
按下按钮后,数据保存成功。然后,它开始下一个活动,我们在那里等待。
但不是在“30”天后删除,而是立即删除。
我有一个方法与 Frank 的答案完全一样
long cutoff = new Date().getTime() - TimeUnit.MILLISECONDS.convert(30, TimeUnit.DAYS);
Query oldBug = mDatabase.orderByChild("timeStamp").endAt(cutoff);
oldBug.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot itemSnapshot: snapshot.getChildren()) {
itemSnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
但它不会在发布一段时间后立即删除它。
谢谢。
编辑:
【问题讨论】:
-
当我运行您发布的代码时,它的行为符合预期。导出并发布显示结构和时间戳值的数据库片段。
-
@qbix 谢谢你,我把我的数据图片放在上面的问题编辑下。
-
我怀疑引用
mDatabase设置不正确。发布定义它的代码。 -
@qbix private DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();作为全局变量
标签: android firebase firebase-realtime-database