从父值的键内的列表中更改子节点值

时间:2019-01-15 15:05:35

标签: android firebase firebase-realtime-database

enter image description here大家好

我正在使用recycleview来显示Firebase Realtime数据库中的数据列表。而且我在布局xml中有Button。

在Firebase中,我在用户信息键内具有子值列表。考虑 名称:萨加尔 检查:已检查

现在,我想将Button的Onclick动作中的值检查从“已检查”更改为“未检查”,将“未检查”更改为“已检查”

当我有一个数据但添加两个或更多数据时,它起作用。单击“按钮”时,子节点“ check”的值不会更改目标键,也不会随机更改其他键的子值。

在“摘要”中,当我单击“按钮”而不是特定节点子项以更改其值时,其他子项值从列表中随机更改。如何预防呢?

这是我的代码

mSolved = (Button) itemView.findViewById(R.id.book_solved);

 g = bookslist.get(position);
 holder.mSolved.setText(g.getBmark());

 holder.mSolved.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

                DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
                final DatabaseReference classicalMechanicsRef = rootRef.child("books").child("Anamnagar").child(g.getBookid());
                ValueEventListener valueEventListener = new ValueEventListener() {

                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        if (Tinfo.equals("Mark Found")) {
                           classicalMechanicsRef.child("bmark").getRef().setValue("Booked");

                        } else   if (Tinfo.equals("Booked")) {
                            classicalMechanicsRef.child("bmark").getRef().setValue("Mark Found");
                        }

0 个答案:

没有答案