В моем случае я открыл SQL Server Management Studio и искал SQLEXPRESS в своем ядре базы данных. У него было два экземпляра, и я выбрал правильный.
Хорошо, я знал, где ваша проблема с кодом
, в этой строке 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) {
}
})
Надеюсь, это поможет вам!
String s1=dataSnapshot.child("CheckAvailability").child("Slot1").getValue(String.class);
Я попытался сделать это, и это сработало для меня !!