Ich habe versucht, diese Arbeit zu machen vonLöschen von Daten Firebase nach einer gewissen Zeit
How to delete firebase data after "n" days
aber es funktioniert nicht für mich.
Hier ist, was ich tue,
In meiner „A“ Tätigkeit, ich habe eine Schaltfläche, die diesen Teil der Daten speichern werden, mit einem Kind ‚timestamp‘, die den Zeitstempel Wert hält. (.setValue (ServerValue.TIMESTAMP);)
Nach dem Drücken der Taste werden die Daten erfolgreich gespeichert. Dann beginnt die nächste Aktivität, wo wir warten.
Aber anstatt nach '30' Tagen zu löschen, löscht es sofort.
Ich habe eine Methode, die genau wie die Antwort von Frank arbeitet
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) {
}
});
Aber es ist nicht es nach einiger Zeit zu löschen, sobald es veröffentlicht wird.
Vielen Dank.
EDIT:
Wenn ich den Code ausführen, den Sie veröffentlicht haben, verhält es sich wie erwartet. Exportieren und veröffentlichen Sie ein Teil Ihrer Datenbank, in dem die Struktur- und Zeitstempelwerte angezeigt werden. –
@qbix danke, ich habe ein Bild von meinen Daten in die obige Frage unter EDIT gesetzt. – SaltySea
Ich vermute, Referenz 'mDatabase' ist nicht korrekt eingestellt. Veröffentlichen Sie den Code, der es definiert. –