Как вывести данные из базы данных Firebase в список просмотра?Android - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь создать систему, в которой я могу ввести напоминание в приложение 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" (как тестовый дочерний элемент).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...