хотите получить значение этих слотов из firebase, сохранить его в проверке String n, если значение «забронировано», затем отключить кнопку с сообщением

В моем случае я открыл SQL Server Management Studio и искал SQLEXPRESS в своем ядре базы данных. У него было два экземпляра, и я выбрал правильный.

0
задан darshit suthar 25 February 2019 в 20:17
поделиться

2 ответа

Хорошо, я знал, где ваша проблема с кодом
, в этой строке fdata.setSlot1(ds.child("CheckAvailability").getValue(Fdata.class).getSlot1());
есть две ошибки:

  • вы ссылаетесь на «CheckAvailability» дочерний, в то время как вы должны ссылаться на дочерний элемент внутри него, как «Slot1», потому что вы ссылаетесь на «CheckAvailability» ранее в mdatabaseReference.

  • Вы используете метод getValue () с данными неверного типа (Fdata.class), вместо этого следует использовать (String.class).

Решение:

mdatabaseReference= FirebaseDatabase.getInstance().getReference("CheckAvailability");
mdatabaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        String s1,s2,s3,s4;

            s1 = dataSnapshot.child("Slot1").getValue(String.class);
            s2 = dataSnapshot.child("Slot2").getValue(String.class);
            s3 = dataSnapshot.child("Slot3").getValue(String.class);
            s4 = dataSnapshot.child("Slot4").getValue(String.class);

            if(s1.equals("booked")){
                mButtonS1.setEnabled(false);
                Toast.makeText(this,"Slot 1 Already booked",Toast.LENGTH_LONG).show();
            }
            if(s2.equals("booked")){
                mButtonS1.setEnabled(false);
                Toast.makeText(this,"Slot 2 Already booked",Toast.LENGTH_LONG).show();
            }
            if(s3.equals("booked")){
                mButtonS1.setEnabled(false);
                Toast.makeText(this,"Slot 3 Already booked",Toast.LENGTH_LONG).show();
            }
            if(s4.equals("booked")){
                mButtonS1.setEnabled(false);
                Toast.makeText(this,"Slot 4 Already booked",Toast.LENGTH_LONG).show();

        }
    }

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

    }
})

Надеюсь, это поможет вам!

0
ответ дан Amr Jyniat 25 February 2019 в 20:17
поделиться
String s1=dataSnapshot.child("CheckAvailability").child("Slot1").getValue(String.class);               

Я попытался сделать это, и это сработало для меня !!

0
ответ дан darshit suthar 25 February 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: