我是Firebase的新手。我对读取和写入功能(甚至是其文档)非常困惑。我能够将数据写入数据库,但无法从同一路径读取数据。
编写部分以将记录写入数据库(活动):
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference databaseRef = database.getReference("patient");
// String id = databaseRef.push().getKey();
Patient patient = new Patient(nric,name,address,contactNo,dob,citizenship,gender,race,spokenLanguage,maritalStatus,chas);
databaseRef.setValue(patient);
读取部件以从数据库(片段)读取记录:
public class HomeFragment extends Fragment {
TextView name, address, contactNo, dateOfBirth, citizenship, gender, race, spokenLanguage, maritalStatus, chasInfo;
ArrayList<Patient> patientList;
DatabaseReference databaseReference;
Patient patient;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.bookappointment_homepage, container, false);
databaseReference = FirebaseDatabase.getInstance().getReference("patient");
name = view.findViewById(R.id.text_name);
address = view.findViewById(R.id.text_address);
contactNo = view.findViewById(R.id.text_contactNo);
dateOfBirth = view.findViewById(R.id.text_dob);
citizenship = view.findViewById(R.id.text_citizenship);
gender = view.findViewById(R.id.text_gender);
race = view.findViewById(R.id.text_race);
maritalStatus = view.findViewById(R.id.text_maritalstatus);
spokenLanguage = view.findViewById(R.id.text_spokenlanguage);
chasInfo = view.findViewById(R.id.text_chas);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
patient = dataSnapshot.getValue(Patient.class);
patientList.add(patient);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
for(Patient patient : patientList)
{
Log.d("errorMsg",patient.toString());
}
// print out patient details to the textview
for(Patient patient : patientList) {
name.setText(patient.getName());
address.setText(patient.getAddress());
contactNo.setText(patient.getContactNo());
dateOfBirth.setText(patient.getDateOfBirth());
citizenship.setText(patient.getCitizenship());
gender.setText(patient.getGender());
race.setText(patient.getRace());
maritalStatus.setText(patient.getMaritalStatus());
spokenLanguage.setText(patient.getSpokenLanguage());
chasInfo.setText(patient.getChasInfo());
}
Button button = view.findViewById(R.id.bookAppointment);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), ScanVitalSignsActivity.class);
//Log.d("debugMEDPACK", "tesT");
getActivity().startActivity(intent);
}
});
return view;
}