Android-чтение данных из базы данных Firebase в реальном времени и отображение в RecyclerView - PullRequest
0 голосов
/ 05 июня 2018

Я успешно смог сохранить данные в RTD Firebase, используя databaseIngredients.child(StringId).setValue(ingredients); Где «ингредиенты» - это строка, взятая из EditText, а StringId - уникальный идентификатор методом «push».Я ссылался на многие учебные пособия, но я не могу их прочитать, я хочу обновлять свой RecyclerView каждый раз, когда моя база данных обновляется новыми данными.Я просто хочу отобразить все данные в моей базе данных с помощью recyclerView.Метод ValueEventListener мной не понят.Пожалуйста, будьте терпеливы, поскольку я понимаю ответ, новичок в Firebase.

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Вы можете использовать FirebaseRecyclerAdapter.Вам понадобится класс модели и класс ViewHolder.Если вы используете новую версию firebase-ui, вы должны использовать FirebaseRecyclerOptions вместе с FirebaseRecyclerAdapter

Вот официальная документация

0 голосов
/ 05 июня 2018

Чтение данных очень просто, все, что вам нужно сделать, это set a listener, который прослушивает change in value в предоставленном вами database reference.

Для этого есть два слушателя,

  • Одноразовый прослушиватель (addListenerForSingleValueEvent), который считывает данные только после того, как вы сделаете запрос.Для этого

Ссылка на DatabaseReference = database.getReference ("База данных"). Child (StringId) .setValue (ингридиенты);

reference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if(dataSnapShot.exists()){
            //update recyclerview or do anything with your data
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Toast.makeText(getApplicationContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
    }
});
  • НепрерывныйПрослушиватель данных (addValueEventListener), который используется для получения данных при каждом их изменении на сервере

    Ссылка на DatabaseReference = database.getReference ("База данных"). Child (StringId) .setValue (ингридиенты);

        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if(dataSnapShot.exists()){
                    //update recyclerview or do anything with your data
                }
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(getApplicationContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...