Привет всем. я пытаюсь получить идентификаторы под 01-Nov-2018
и 02-Nov-2018
, но я не могу это сделать. Я пытался этот вопрос, но не смог получить данные. Мой код:
ListView listView;
ArrayList<String> list = new ArrayList<>();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReferenceFromUrl("https://myapplication-340c0.firebaseio.com/").child("Teacher").child("batch 1").child("C7-Advanced Java");//.child("02-Nov-2018");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_data);
listView = findViewById(R.id.list);
myRef.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
collectPhoneNumbers((Map<String, Object>) dataSnapshot.getValue());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void collectPhoneNumbers(Map<String,Object> users) {
ArrayList phoneNumbers = new ArrayList<>();
//iterate through each user, ignoring their UID
for (Map.Entry<String, Object> entry : users.entrySet()){
//Get user map
Map singleUser = (Map) entry.getValue();
//Get phone field and append to list
phoneNumbers.add( singleUser.get("02-Nov-2018").toString());
}
Log.d("data from db",phoneNumbers.toString());
//listView.setAdapter(adapter);
System.out.println(phoneNumbers.toString());
}
ошибка в Log.d
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at com.example.root.connieapp.ViewData.collectPhoneNumbers(ViewData.java:57)
at com.example.root.connieapp.ViewData.access$000(ViewData.java:19)
at com.example.root.connieapp.ViewData$1.onDataChange(ViewData.java:33)
Мне нужно добавить больше значений в базу данных, и их будет много. как я могу получить много значений ??
Пожалуйста, помогите мне преодолеть эту проблему.
Я повторно использовал код, но не переименовал переменные. пожалуйста, не против этого .. спасибо