我正在开发一个应用程序,用户可以在其中注册,输入一些信息,然后将其重定向到另一个页面,他们可以在其中看到输入的信息。信息使用Firebase保存在实时数据库中,我的问题是如何检索要显示的数据?我看过教程,但是我不明白如何在数组列表或类似的列表中检索这些数据。

这是我的数据库结构,其中id是用户的uuid:
java - 如何从Firebase中的实时数据库检索数据?-LMLPHP

这是我将数据保存到数据库的方式:

这是保存不同变量的类构造函数

  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/

10-12 16:24
查看更多