извлекать и обновлять данные с помощью кнопки-переключателя Android (Firebase) - PullRequest
0 голосов
/ 05 марта 2019

Я хочу изменить данные в базе данных Firebase с помощью приложения для Android.Поэтому я хочу, чтобы оно было истинным, когда я его открываю, и ложным, когда я его закрываю.(0-states-001-True / False) Поэтому, когда я нажимаю кнопку переключения, я хочу обновить данные (true / false)).Я поделился кодом ниже.Как мне обновить данные?Эти коды не работают, данные неверны. база данных приложение

DatabaseReference dbProducts1 = FirebaseDatabase.getInstance().getReference("0").child("states").child("001");

dbProducts1.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot1) {

                    if(dataSnapshot1.exists()){

                        for(DataSnapshot productSnapshot : dataSnapshot1.getChildren()){
                            Product1 p1 = productSnapshot.getValue(Product1.class);
                            productList.add(p1);
                        }

                        adapter = new ProductsAdapter(MainActivity.this, productList);
                        recyclerView.setAdapter(adapter);

                    }

                }

public class Product1 extends Product {

            private boolean states;

            public Product1(){

            }

            public Product1(boolean states) {

                this.states = states;
            }


            public boolean getStates() {
                return states;
            }

        }

         public void onBindViewHolder(ProductViewHolder holder, int position) {
                Product product = productList.get(position);

                // holder.textViewID.setText(String.valueOf(product.getid()));
                holder.viewStatus.setText(String.valueOf(product.getStates()));

        }


class ProductViewHolder extends RecyclerView.ViewHolder {

                ToggleButton viewStatus;
                public ProductViewHolder(View itemView) {
                    super(itemView);

                    viewStatus = itemView.findViewById(R.id.toggle_Data);

        }
        }

Ответы [ 2 ]

0 голосов
/ 04 мая 2019
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("status/001");
if(isChecked){

    myRef.setValue(true);

}else{
    myRef.setValue(false);

}
            }
        });
0 голосов
/ 05 марта 2019

Попробуйте обновить, когда состояние переключателя изменится

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

DatabaseReference ref = mDatabase.child("states").child("001")

mySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        Map<String, Object> newStatus = new HashMap<>();
        childUpdates.put("states", isChecked)

        ref.update(newStatus)
    }
});
...