Я пытаюсь создать систему, в которой я могу ввести напоминание в приложение Android, отправить его в Firebase для доступа ко всем устройствам с приложением и получить это напоминание в уведомлении.Мне все еще нужно сделать интерфейс, чтобы я мог отправлять вещи в Firebase из приложения, но у меня возникают проблемы с получением данных.Прямо сейчас ему не нравится моя строка listView.setAdapter (arrayAdapter), потому что он думает, что я вызываю нулевую ссылку на объект.Это мой код:
public class MainActivity extends AppCompatActivity {
ListView listView;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
ArrayList<String> arrayList = new ArrayList<>();
ArrayAdapter<String> arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference("Users");
Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show();
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String value=dataSnapshot.getValue(String.class);
arrayList.add(value);
arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(arrayAdapter);
}//public void onChildAdded(DataSnapshot dataSnapshot, String s) end
class User {
public String username;
public String email;
public User() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public User(String username, String email) {
this.username = username;
this.email = email;
}
}//class User end
public void writeNewUser(String userId, String name, String email) {
User user = new User(name, email);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}//protected void onCreate(Bundle savedInstanceState) end
}
Есть несколько неиспользуемых классов, но мой главный вопрос: почему массив пуст?И почему это приводит к сбою приложения, когда я пытаюсь запустить его на эмуляторе?
Кроме того, единственной вещью в моей базе данных являются родительские пользователи и один их дочерний элемент, "goy" (как тестовый дочерний элемент).