我正在使用Firebase
创建一个应用,用户可以在其中添加数据并直接从Firebase Database
显示数据。数据插入成功,在插入每个值后,它在数据库中看起来像这样。
这是我的数据库的图片:
我想检索Student中的所有数据(例如studentName& studentPhoneNumber)并显示在.xml布局文件中。由于我在代码中使用legacy SDK
,因此我不知道如何使用DatabaseReference
。
ShowButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
firebase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Student student = postSnapshot.getValue(Student.class);
String ShowDataString =ShowDataTextView.getText()+ "Name : "+student.getStudentName()+"\nPhone Number : "+student.getStudentPhoneNumber()+"\n\n";
ShowDataTextView.setText(ShowDataString);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("Data Access Failed" + firebaseError.getMessage());
}
});
}
});
我的Student.class看起来像这样:
public class Student {
private String name;
private String phoneNumber;
public Student() {
}
public String getStudentName() {
return name;
}
public void setStudentName(String name) {
this.name = name;
}
public String getStudentPhoneNumber() {
return phoneNumber;
}
public void setStudentPhoneNumber(String phonenumber) {
this.phoneNumber = phonenumber;
}
}
答案 0 :(得分:2)
带学生arrayList
并将学生数据添加到列表中。
FirebaseAuth mFirebaseAuthInstance = FirebaseAuth.getInstance();
FirebaseDatabase mFirebaseDatabase = FirebaseDatabase.getInstance();
FirebaseUser mFirebaseCurrentUser = mFirebaseAuthInstance.getCurrentUser();
DatabaseReference mDatabaseRef = mFirebaseDatabase.getReference("User").child(mFirebaseCurrentUser.getUid()).child("Student");
mDatabaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
ArrayList<Student> studentList=new ArrayList<Student>();
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Student student = postSnapshot.getValue(Student.class);
studentList.add(student);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("Data Access Failed" + firebaseError.getMessage());
}
});
使用RecylerView
将数据加载到xml,请参阅以下链接以使用RecylerView
答案 1 :(得分:0)
试试这个
public class FethingDatas extends AppCompatActivity {
RecyclerView ry_fetchdata;
Firebase firebase;
ArrayList<Pojo_Recylerview> arrayList = new ArrayList<>();
Pojo_Recylerview pojo_recylerview_obj;
Display_Adapter display_adapter;
private RecyclerView.LayoutManager layoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fething_datas);
ry_fetchdata = findViewById(R.id.ry_fetchdata);
firebase = new Firebase("https://fir-project-87eac.firebaseio.com/").child("Userdata");
layoutManager = new LinearLayoutManager(this);
ry_fetchdata.setLayoutManager(layoutManager);
ry_fetchdata.setItemAnimator(new DefaultItemAnimator());
display_adapter = new Display_Adapter(this,arrayList);
ry_fetchdata.setAdapter(display_adapter);
firebase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists())
{
arrayList.clear();
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren())
{
String subject= (String) dataSnapshot1.child("subject").getValue();
String username = (String) dataSnapshot1.child("username").getValue();
pojo_recylerview_obj = new Pojo_Recylerview();
Log.d("subject","username"+subject +" "+username);
pojo_recylerview_obj.setSubject(subject);
pojo_recylerview_obj.setUsername(username);
arrayList.add(pojo_recylerview_obj);
}
display_adapter.notifyDataSetChanged();
}else
{
Toast.makeText(FethingDatas.this,"No More Data Found",Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
}