Я пытаюсь получить и отобразить прошлые платежи пользователя. Для этого я использовал Recycler-view, который берет информацию из массива и отображает все прошлые транзакции.
Из базы данных выше (в изображении) я хочу получить эти данные и сохранить их в массиве в следующем формате:
amount[]={"100","200"};
rid[]={"123456",123456"};
date_time[]={"16 Aug 2019 14:10:26","16 Aug 2019 14:12:26"};
Ниже приведен код для студии Android, где мне нужна помощь.
FirebaseDatabase.getInstance().getReference().child("payments").child(firebaseAuth.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//How to retrieve the data in above array format
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
2 ответа
Вы можете использовать List
:
List<String> amountList = new ArrayList<>();
List<String> ridList = new ArrayList<>();
List<String> dateTimeList = new ArrayList<>();
FirebaseDatabase.getInstance().getReference().child("payments").child(firebaseAuth.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
String amount = ds.child("amount").getValue(String.class);
String rid = ds.child("rid").getValue(String.class);
String dateTime = ds.child("date_time").getValue(String.class);
amountList.add(amount);
ridList.add(rid);
dateTimeList.add(dateTime);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Ваш databaseReference
находится в узле uid
, затем вы зацикливаетесь внутри uid
и получаете значение каждого атрибута, затем вы можете добавить их в List
.
int count = (int) datasnapshot.getChildrenCount();
String amount[]=new String[count];
....
// initialize other arrays
int i=0; //loop counter
for(Datasnapshot post: datasnapshot.getChildren){
...
//iterate every value and insert into respective array
}
Я не вижу никакого способа в одном запросе Firebase, кроме этого, или вы можете использовать вместо него List <>.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.