分配的时间过后,自动删除一组firebase数据

时间:2017-03-07 01:24:54

标签: android firebase firebase-realtime-database epoch

我在FirebaseDatabase中有一些数据,其中每个数据集都有两个属性:startTimeendTime

这是数据结构:

app
 -ref
   -uniqueID1
     -key: value
     -startTime: 1488849333
     -endTime: 1488853842
     -key: value
   -uniqueID2
     -key: value
     -startTime: 1488850198
     -endTime: 1488853802
     -key: value

我想要的是在endTime自动通过或用户打开应用时删除数据集。

我对这个主题进行了一些研究,发现了this,但这似乎对我没有帮助。

我如何删除endTime已通过的数据集?

1 个答案:

答案 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。 谢谢,我希望它有所帮助