当前位置: 代码迷 >> Android >> 从Firebase删除共享同一子项的多个数据-Java
  详细解决方案

从Firebase删除共享同一子项的多个数据-Java

热度:116   发布时间:2023-08-04 12:30:21.0

我有以下Firebase数据库

课程:

      Id_lesson : "XXX1"
      Name_lesson : "Geography"
      Date_lesson : "25/09/2018"

      Id_lesson : "XXX2"
      Name_lesson : "Mathematics"
      Date_lesson : "25/09/2018"

      Id_lesson : "XXX1"
      Name_lesson : "Physics"
      Date_lesson : "26/09/2018"

      Id_lesson : "XXX2"
      Name_lesson : "Biology"
      Date_lesson : "26/09/2018"

我需要从特定日期删除所有课程条目(共享相同的Date_lesson子级)。

我尝试了这种方法:

private void Delete_CR_Lessons(Date date) {

    final String date_to_delete_string = DateFormat.getDateInstance(DateFormat.SHORT).format(date);
    Log.i("Tag", "date to delete : "+date_to_delete_string);

    DatabaseReference drTest = FirebaseDatabase.getInstance().getReference();

    drTest.child("lessons").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            for(DataSnapshot dataSnapshot:snapshot.getChildren()) {
                Log.i("Tag", "iteration for dataSnap");
                if(dataSnapshot.hasChild(date_to_delete_string)){
                    dataSnapshot.getRef().setValue(null);
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.w("TAG: ", databaseError.getMessage());
        }
    });

在执行该方法期间(例如,字符串日期为“ 25/09/2018”),不会从Firebase数据库中删除条目。 我看到了我指定的两个日志,但是我也看到了一个名为

“我/聊天:uid = 10298(com.example.myname.lessonsmanagment)相同的2行”

我认为该方法不起作用,因为它无法同时检测到日期为25/09/2018的两个课程(地理和数学)。

有谁知道如何使它起作用?

首先,您需要查询/排序带有日期的数据

您可以使用此示例简单地进行操作。

mRef.child("lessons").orderByKey().equalTo(Date_lesson)
.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {

  for (DataSnapshot postsnapshot :dataSnapshot.getChildren()) {
    String key = postsnapshot.getKey();
    dataSnapshot.getRef().removeValue(); 
 }
});

mRef是您的lessons分支分支参考

  相关解决方案