我在FirebaseDatabase
中有一些数据,其中每个数据集都有两个属性:startTime
和endTime
。
这是数据结构:
app
-ref
-uniqueID1
-key: value
-startTime: 1488849333
-endTime: 1488853842
-key: value
-uniqueID2
-key: value
-startTime: 1488850198
-endTime: 1488853802
-key: value
我想要的是在endTime
自动通过或用户打开应用时删除数据集。
我对这个主题进行了一些研究,发现了this,但这似乎对我没有帮助。
我如何删除endTime
已通过的数据集?
答案 0 :(得分:0)
这看起来像是一个类似的回答,但你似乎不理解答案。所以这是如何做到的。 由于重要的是结束时间,我们只会监控它何时通过。为此,我们得到当前时间
Date().getTime();
并检查它是否大于结束时间(如果是,则表示结束时间已过)
final DatabaseReference currentRef = adapter.getRef(position);
currentRef.child("endTime").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
long time = System.currentTimeMillis(); //get time in millis
long end = Long.parseLong( dataSnapshot.getValue().toString()); //get the end time from firebase database
//convert to int
int timenow = (int) time;
int endtime = (int) end;
//check if the endtime has been reached
if (end < time){
currentRef.removeValue(); //remove the entry
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我在单击要删除的项目时实现了该代码。所以适配器来自listview。 谢谢,我希望它有所帮助