我正在开发一个应用程序,用户可以在其中注册,输入一些信息,然后将其重定向到另一个页面,他们可以在其中看到输入的信息。信息使用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());
}
});
存在多种类型的事件侦听器,您可以阅读有关here中数据检索的所有信息。
关于java - 如何从Firebase中的实时数据库检索数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55837543/