Я разрабатываю приложение, в котором пользователь регистрируется, вводит некоторую информацию, а затем перенаправляется на другую страницу, где он может видеть введенную информацию. Информация сохраняется в базе данных в реальном времени с использованием firebase, и моя проблема в том, как получить эти данные для отображения? Я смотрел на учебники, но я не понимаю, как эти данные могут быть получены в списке массивов или что-то в этом роде.
Вот моя структура базы данных, где id - это пользователь uuid:
И вот как я сохраняю данные в базу данных:
это конструктор класса, который содержит различные переменные, которые будут сохранены
public PersonalInfo(String Id, String Name, String Birthday, String weight, String height, String gender, String Protein, String carbs, String fat, String Weightloss)
{
this.id = Id;
this.Name = Name;
this.Birthday = Birthday;
this.weight = weight;
this.height = height;
this.gender = gender;
this.Protein = Protein;
this.carbs = carbs;
this.fat = fat;
this.weightloss = Weightloss;
}
и после получения текста различных текстовых полей в упражнении данные сохраняются следующим образом:
PersonalInfo info = new PersonalInfo(Id, Name, Birthday, Weight, Height, Gender, Protein, Carbs, Fat, Weightloss);
databaseinfo.child(Id).setValue(info);
Toast.makeText(this, "Data added", Toast.LENGTH_SHORT).show();
Если бы кто-нибудь мог помочь или дать мне ссылку на учебник, который объясняет мою проблему, это было бы очень ценно.
Привет, просто добавьте все это в метод и назовите его и замените 'server/saving-data/fireblog/posts'
ссылкой на ваш узел сервера, и вы получите ответ от этого узла.
// Get a reference to our posts
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("server/saving-data/fireblog/posts");
// Attach a listener to read the data at our posts reference
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Post post = dataSnapshot.getValue(PersonalInfo.class);
System.out.println(post);
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
Есть несколько типов прослушивателей событий, и вы можете прочитать все о получении данных здесь.