У меня проблема с запросом моих данных в Firebase. Я пытаюсь сделать запрос по предмету, который равен науке. Моя ссылка - классы, а потом мой ребенок - это ключ / идентификатор, и после этого у меня есть ребенок после этого, который называется информация о пользователе.
Вот моя структура базы данных:
"Classes" : {
"-Li9nBUgnFmCWqUmwV5W" : {
"class_info" : {
"date_clasname" : "August 6, 2019",
"room_number" : "131",
"subject" : "Science",
"teacher" : "Ms.Henry",
"id" : "-Li9nBUgnFmCWqUmwV5W"
}
},
"-Li9n_IYwbTNPdNAsTAu" : {
"class_info" : {
"date_clasname" : "August 6, 2019",
"room_number" : "131",
"subject" : "Math",
"teacher" : "Ms.Henry",
"id" : "-Li9n_IYwbTNPdNAsTAu"
}
},
"-Li9naUipsa865NBpZjW" : {
"class_info" : {
"date_clasname" : "August 6, 2019",
"room_number" : "131",
"subject" : "Other",
"teacher" : "Ms.Henry",
"id" : "-Li9naUipsa865NBpZjW"
}
},
"-Li9nbpwp2qchwmZRDP9" : {
"class_info" : {
"date_clasname" : "August 6, 2019",
"room_number" : "131",
"subject" : "Technology",
"teacher" : "Ms.Henry",
"id" : "-Li9nbpwp2qchwmZRDP9"
}
},
"-Li9ne0NDyjcB4SIWi1z" : {
"class_info" : {
"date_clasname" : "August 6, 2019",
"room_number" : "131",
"subject" : "Social Studies",
"teacher" : "Ms.Henry",
"id" : "-Li9ne0NDyjcB4SIWi1z"
}
}
},
Вот мой код для действия, которое выполняет запрос:
public class Science_classes extends AppCompatActivity {
private FirebaseDatabase database;
private DatabaseReference myRef;
private List<Listdata> list;
private RecyclerView recyclerview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_science_classes);
recyclerview = (RecyclerView) findViewById(R.id.rview);
database = FirebaseDatabase.getInstance();
myRef = database.getReference("Classes");
Query query = myRef.orderByChild("subject").equalTo("Science");
System.out.println(query);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
list = new ArrayList<>();
// StringBuffer stringbuffer = new StringBuffer();
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
Class_model new_class = dataSnapshot1.getValue(Class_model.class);
String nameofclass = new_class.getDate_clasname();
String teacherofclass = new_class.getTeacher();
String roomnumberofclass = new_class.getRoom_number();
String class_key = new_class.getUid();
Listdata listdata = new Listdata(nameofclass, teacherofclass, roomnumberofclass, class_key);
//String name = userdetails.getName();
//String email = userdetails.getEmail();
//String address = userdetails.getAddress();
listdata.setDate_class(nameofclass);
listdata.setTeacher(teacherofclass);
listdata.setRnumber(roomnumberofclass);
list.add(listdata);
// Toast.makeText(MainActivity.this,""+name,Toast.LENGTH_LONG).show();
}
RecyclerviewAdapter2 recycler = new RecyclerviewAdapter2(list);
RecyclerView.LayoutManager layoutmanager = new LinearLayoutManager(Science_classes.this);
recyclerview.setLayoutManager(layoutmanager);
recyclerview.setItemAnimator(new DefaultItemAnimator());
recyclerview.setAdapter(recycler);
}
@Override
public void onCancelled(DatabaseError error) {
AlertDialog alertDialog = new AlertDialog.Builder(Science_classes.this).create();
alertDialog.setTitle("Error");
alertDialog.setMessage("Check your connection! If, problem persists please email svhsdev@vigoschools.org!");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
// Failed to read value
// Log.w(TAG, "Failed to read value.", error.toException());
}
});
}
//});
Заранее спасибо ... дайте мне знать, если у вас есть какие-либо вопросы!