为了账号安全,请及时绑定邮箱和手机立即绑定

当我点击“删除”按钮时,如何删除数据库上的一个项目?

当我点击“删除”按钮时,如何删除数据库上的一个项目?

慕哥9229398 2022-09-28 16:03:32
我是安卓工作室的新手,对于我的安卓应用程序,我使用的是火库。我想在单击按钮 时从数据库中删除一个项目。delete(btnDelete)    String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();    Query query= FirebaseDatabase.getInstance()            .getReference().child("users").child(uid).child("foto");        public ViewHolder(@NonNull View itemView) {            super(itemView);            foto_root=itemView.findViewById(R.id.foto_root);            tvNameF=itemView.findViewById(R.id.tvNameF);            tvPhoneF=itemView.findViewById(R.id.tvPhoneF);            tvAdressF=itemView.findViewById(R.id.tvAdressF);            tvMailF=itemView.findViewById(R.id.tvMailF);            tvNoteF=itemView.findViewById(R.id.tvNoteF);            btnDelete=itemView.findViewById(R.id.btnDelete);        }        public void setTvNameF(String tvNameFs){            tvNameF.setText(tvNameFs);        }        public void setTvPhoneF(String tvPhoneFs){            tvPhoneF.setText(tvPhoneFs);        }    }    /*    get on dataBase     */    private void fetch() {        FirebaseRecyclerOptions<Foto> options=                new FirebaseRecyclerOptions.Builder<Foto>().setQuery(query, snapshot -> new Foto(                snapshot.child("id").getKey(),                snapshot.child("name").getValue().toString(),                snapshot.child("phone").getValue().toString(),                snapshot.child("adress").getValue().toString(),                snapshot.child("email").getValue().toString(),                snapshot.child("note").getValue().toString())).build();        adapter = new FirebaseRecyclerAdapter<Foto, FotoActivity.ViewHolder>(options) {            @NonNull            @Override            public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {                View view = LayoutInflater.from(parent.getContext())                        .inflate(R.layout.foto_item,parent,false);                return new ViewHolder(view);            }        };我想从数据库中删除一个项目,而不是所有数据库。foto
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

只需在删除函数中使用以下命令,这将删除“phone”节点的值。您需要知道要删除的用户的 uid,否则您可以将其替换为数据库节点引用,但随后会从所有用户 ID 中删除电话。基本上,您将侦听 foto 节点,获取所有推送 ID 并循环访问推送 ID 以删除所需的节点。


声明变量


private static final String TAG = "TestActivity";

private DatabaseReference fbDbRef;

在创建


final String uid = "youruid";

fbDbRef = FirebaseDatabase.getInstance().getReference().child("users")

         .child(uid).child("foto");

您的职能


private void delete() {


fbDbRef.addListenerForSingleValueEvent(new ValueEventListener() {


        @Override

        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


            for (DataSnapshot snapshot : dataSnapshot.getChildren()) {


                final String pushKey = snapshot.getKey();

                Log.d(TAG, "pushKey: " + pushKey);

                fbDbRef.child(pushKey).child("phone").removeValue();


            }


        }


        @Override

        public void onCancelled(@NonNull DatabaseError databaseError) {


        }

    });


}


查看完整回答
反对 回复 2022-09-28
  • 1 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号