java - 如何在 firebase 数据库上的某个日期之后删除子节点?

标签 java android firebase firebase-realtime-database

如果值(日期)<当前时间日期,则需要删除子项(postkey)

这就是我的数据库的样子: database

 Calendar calFordDate;
        calFordDate = Calendar.getInstance();
        SimpleDateFormat currentDate = new SimpleDateFormat("dd/MM/yyyy");
        String CurrentDate = currentDate.format(calFordDate.getTime());
        PostsRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String tripdate = dataSnapshot.child(postkey).child("date").getValue().toString();
                if(CurrentDate.after(tripdate)) {

                    dataSnapshot.getRef().removeValue();
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

最佳答案

您的答案中的错误是由于 tripdate 是一个字符串而不是 Date 对象。要将字符串转换为日期,您可以使用如下代码:

String dtStart = "2010-10-15T09:27:37Z";  
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");  
try {  
    Date date = format.parse(dtStart);  
    System.out.println(date);  
} catch (ParseException e) {
    e.printStackTrace();  
}

当您不知道值时,如果要从 Firebase 数据库中删除子项,则必须使用如下代码来完成:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Query delQuery = ref.child("Posts").orderByChild("date").equalTo(DateYouKnowIsThere);

delQuery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot dSnapshot: dataSnapshot.getChildren()) {
            dSnapshot.getRef().removeValue();
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.e(TAG, "onCancelled", databaseError.toException());
    }
});

关于java - 如何在 firebase 数据库上的某个日期之后删除子节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52905013/

相关文章:

java - 在服务测试中使用真实的组件

javascript - 使用 firebase 动态更改 img ng-repeat

android - 浏览并选择要在 PhoneGap 移动应用程序中的 FileTransfer() 中使用的文件

android - ViewPager 内的 ListView 不滚动

android - 免安装应用的 Firebase 支持库依赖冲突

swift - 如何将 firebase 数据放入两个 tableView 中?

java - JSP 找不到 i18n 的默认包

java - 无法使用 Recycler view android 加载更多数据分页

java - 为什么 Java HashMap 实现在调整大小时使用 transfer() 而不是 put()?

java - 我正在转换日期,但它在月份中多加了一个点如何处理