Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从firebase中删除没有ID的记录_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 从firebase中删除没有ID的记录

Android 从firebase中删除没有ID的记录,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我已插入数据并在列表视图中显示,因为我是Firebase新手,不知道如何删除它 我的数据格式: 我尝试删除的代码是: listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long i

我已插入数据并在列表视图中显示,因为我是Firebase新手,不知道如何删除它

我的数据格式:

我尝试删除的代码是:

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            member.setName(list.get(position));
        }
    });
   btnDelete.setOnClickListener(new View.OnClickListener() {
       @Override
           public void onClick(View v) {
           final String str = member.getName().substring(0,24);
           if (str == "") {
               Toast.makeText(Retreivedata.this, "plz select record to delete", Toast.LENGTH_LONG).show();
           }else {

           ref.child("Member").child(str).addListenerForSingleValueEvent(new ValueEventListener() {
               @Override
               public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                   ref.child(str).removeValue();
               }

               @Override
               public void onCancelled(@NonNull DatabaseError databaseError) {

               }
           });
           Toast.makeText(Retreivedata.this,"Record is deleted",Toast.LENGTH_LONG).show();
               Intent intent = new Intent(getApplicationContext(),Retreivedata.class);
               startActivity(intent);
           }
           }
建议我点击删除按钮后设置什么

我建议使用firebase recycler adapter或android recycler view加载数据,但对于您的情况,您可以这样做:

这不是最好的方法,但假设您希望在单击时删除项目,并且假设所有名称都不同:

我假设member.getName为您提供了单击项目的名称:

btnDelete.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {


//ref
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Member");

//Query
Query query = ref.orderByChild("name").equalTo(member.getName());


ValueEventListener listener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()){

         //remove
         ds.getRef().removeValue();

       }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
};
query.addValueEventListener(listener);


}
});