Как показать данные Firebase в TextViews с помощью класса UserInformation

У меня возникли проблемы с отображением правильной информации о пользователе из моей базы данных в реальном времени в конкретных текстовых представлениях. На данный момент ни один из них не отображается

Это приложение включает в себя студию Android и извлечение информации о пользователе на основе электронной почты и идентификатора пользователя.

Структура моей базы данных довольно проста и выглядит так: Как показать данные Firebase в TextViews с помощью класса UserInformation

Мой класс UserInformation имеет типы как таковые:

public class UserInformation {

private String name;
private String email;
private String campus;
private String twop_num;
private Timestamp expiration_date;
private Double meals;
private Double pfunds;

public UserInformation(){

}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getCampus() {
    return campus;
}

public void setCampus(String campus) {
    this.campus = campus;
}

public String getTwop_num() {
    return twop_num;
}

public void setTwop_num(String twop_num) {
    this.twop_num = twop_num;
}

public Timestamp getExpiration_date() {
    return expiration_date;
}

public void setExpiration_date(Timestamp expiration_date) {
    this.expiration_date = expiration_date;
}

public Double getMeals() {
    return meals;
}

public void setMeals(Double meals) {
    this.meals = meals;
}


public Double getpfunds() {
    return pfunds;
}

public void setpfunds(Double punds) {
    this.pfunds = punds;
}

И я считаю, что проблема заключается в извлечении данных из базы данных метода «добавить», который я использую при попытке отобразить информацию в TextView. Код:

    private TextView Email;
private TextView TwoPNum;
private TextView Meal;
private TextView PantherFunds;
private TextView Expiration;
private TextView Campus;
private Button logout;

//...

 Email = (TextView) findViewById(R.id.profileEmail);
 TwoPNum = (TextView) findViewById(R.id.profileUid);
 Meal = (TextView) findViewById(R.id.mealsNum);
 PantherFunds = (TextView) findViewById(R.id.pFundsNum);
 Expiration = (TextView) findViewById(R.id.expirationDate);
 Campus = (TextView) findViewById(R.id.campusText);

 //...

  private void showData(DataSnapshot dataSnapshot) {
    for (DataSnapshot ds : dataSnapshot.getChildren()) {
        UserInformation uInfo = new UserInformation();
        uInfo.setName(ds.child(userID).getValue(UserInformation.class).getName()); //set the name
        uInfo.setEmail(ds.child(userID).getValue(UserInformation.class).getEmail()); //set the email
        uInfo.setCampus(ds.child(userID).getValue(UserInformation.class).getCampus()); //set the phone_num
        uInfo.setExpiration_date(ds.child(userID).getValue(UserInformation.class).getExpiration_date());// set expiration date
        uInfo.setpfunds(ds.child(userID).getValue(UserInformation.class).getpfunds()); // get pantherfunds
        uInfo.setMeals(ds.child(userID).getValue(UserInformation.class).getMeals()); // get Meals
        uInfo.setTwop_num(ds.child(userID).getValue(UserInformation.class).getTwop_num()); // get Meals

        //display all the information
        Log.d(TAG, "showData: name: " + uInfo.getName());
        Log.d(TAG, "showData: email: " + uInfo.getEmail());
        Log.d(TAG, "showData: campus : " + uInfo.getCampus());
        Log.d(TAG, "showData: expiration_date: " + uInfo.getExpiration_date());
        Log.d(TAG, "showData: pfunds: " + uInfo.getpfunds());
        Log.d(TAG, "showData: : meals" + uInfo.getMeals());
        Log.d(TAG, "showData: twop_num: " + uInfo.getTwop_num());

        // Show Data in TextViews
        Email.append(uInfo.getEmail());
        TwoPNum.append(uInfo.getTwop_num());
        Meal.append(String.valueOf(uInfo.getMeals()));
        PantherFunds.append(String.valueOf(uInfo.getpfunds()));
        Expiration.append(String.valueOf(uInfo.getExpiration_date()));
        Campus.append(uInfo.getCampus());

    }
}

Вы пытаетесь получить данные от одного пользователя или от всех пользователей? Пожалуйста, ответьте @AlexMamo

Alex Mamo 29.05.2019 09:00

Ответ сработал! Завтра выложу решение

dHumphrey 29.05.2019 09:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, вы используете firestore, а не базу данных в реальном времени, чтобы получить данные коллекции в firestore, попробуйте следующее:

db.collection("users")
    .get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if (task.isSuccessful()) {
                for (QueryDocumentSnapshot document : task.getResult()) {
                    Log.d(TAG, document.getId() + " => " + document.getData());
                }
            } else {
                Log.d(TAG, "Error getting documents: ", task.getException());
            }
        }
    });

Проверьте документы для получения дополнительной информации:

https://firebase.google.com/docs/firestore/query-data/get-data

Другие вопросы по теме