Я хочу получить указанные ниже значения и хочу, чтобы они были в счетчике?
Ниже представлено дерево данных из базы данных Firebase, а значения, которые я хочу получить или прочитать, прокомментированы ниже:
"Courses Details" : {
"Bs-BBA" : { /// These are the value that i am trying to read and fetch
"-MVuhKkfxjHkZmTfsITM" : {
"Economics" : {
"courseName" : "Economics",
"courseSection" : "A",
"dayOfCourse" : "Tuesday",
"endingTime" : "1:30Pm",
"programName" : "Bs-BBA",
"startingTime" : "12:00Pm"
}
}
},
"Bscs" : { /// These are the value that i am trying to read and fetch
"-MVWl1uq9fA4AlYRfMIv" : {
"Data structure" : {
"courseName" : "Data structure",
"courseSection" : "A",
"dayOfCourse" : "Monday",
"endingTime" : "9:30AM",
"programName" : "Bscs",
"startingTime" : "8:00AM"
}
},
"-MVY9hGxrp8Lz4JTOefy" : {
"OOP" : {
"courseName" : "OOP",
"courseSection" : "A",
"dayOfCourse" : "Thursday",
"endingTime" : "9:00AM",
"programName" : "Bscs",
"startingTime" : "8:00AM"
}
},
"-MVYHM0c7cMLersoUl2i" : {
"Marketing Fundamental" : {
"courseName" : "Marketing Fundamental",
"courseSection" : "A",
"dayOfCourse" : "Thursday",
"endingTime" : "9:00AM",
"programName" : "Bscs",
"startingTime" : "8:00AM"
}
}
},
"Bsse" : { /// These are the value that i am trying to read and fetch
"-MVYHB3X_d4UozbBUDa3" : {
"Marketing Fundamental" : {
"courseName" : "Marketing Fundamental",
"courseSection" : "A",
"dayOfCourse" : "Thursday",
"endingTime" : "9:00AM",
"programName" : "Bsse",
"startingTime" : "8:00AM"
}
}
}
},
И это код, который я написал так далеко для чтения или выборки вышеупомянутых значений:
public void getDataIntoSpinnerForProgramNameFromFirebase()
{
dbRef = FirebaseDatabase.getInstance().getReference().child("Courses Details");
listener = dbRef.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot snapshot)
{
spinnerForProgramNameArrayList.clear();
for( DataSnapshot programAndDepartmentName:snapshot.getChildren() )
{
if( programAndDepartmentName.child("programNameAndDepartmentName").exists() )
{
spinnerForProgramNameArrayList.add(programAndDepartmentName.child("programNameAndDepartmentName").toString());
}
}
/*for( DataSnapshot departments:snapshot.getChildren() )
{
for( DataSnapshot programNames:departments.getChildren() )
{
if (programNames.child("Program Name").exists())
{
spinnerForProgramNameArrayList.add(programNames.child("Program Name").getValue().toString());
}
}
}*/
spinnerForProgramNameArrayAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError error)
{
}
});
}
}
Как я могу получить или прочитать вышеупомянутые значения из базы данных Firebase?
1 ответ
Предполагая, что «Сведения о курсах» являются прямым потомком вашей корневой ссылки на базу данных Firebase Realtime, для получения выделенных значений используйте следующие строки кода:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference coursesDetailsRef = rootRef.child("Courses Details");
coursesDetailsRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
for (DataSnapshot ds : task.getResult().getChildren()) {
String key = ds.getkey();
spinnerForProgramNameArrayList.add(key);
Log.d("TAG", key);
}
} else {
Log.d(TAG, task.getException().getMessage()); //Don't ignore potential errors!
}
}
});
Результат в логарифме приведенного выше кода будет:
Bs-BBA
Bs-BBA
Base
Добавьте указанные выше значения в «spinnerForProgramNameArrayList».
P.S. Поскольку мы используем get () , убедитесь, что у вас установлена зависимость Firebase Realtime Database как минимум 19.6.0 .
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.