Firebase无法读取

时间:2018-11-02 14:57:17

标签: android firebase firebase-realtime-database

我是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;
}

0 个答案:

没有答案