Как получить конкретные данные из документа в FireStore и передать их локальной переменной в Android - PullRequest
0 голосов
/ 23 октября 2019

Это снимок экрана с моей структурой пожарного депо

Я хочу получить данные из моей модели, хранящиеся в документах пожарного депо, в мою локальную переменную

final EmployeeModel model = new EmployeeModel();

    firebaseFirestore.collection("USERS").document(firebaseUser.getUid()).get()
            .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                @Override
                public void onSuccess(DocumentSnapshot documentSnapshot) {
                    if(documentSnapshot.exists()){
                        String username = documentSnapshot.getString(model.getUsername());
                        String email = documentSnapshot.getString(model.getEmail());
                        String location = documentSnapshot.getString(model.getLocation());
                        String phonenumber = documentSnapshot.getString(model.getPhonenumber());
                        String genderS = documentSnapshot.getString(model.getGender());

                        // Map<String, Object> userInfo = documentSnapshot.getData();
                        fragmentname.setText(username);
                        welcomeUser.setText(email);
                        employeeID.setText("1610225");
                        city.setText(location);
                        number.setText(phonenumber);
                        gender.setText(genderS);
                    } else {
                        Toast.makeText(getActivity(), "Document does not exist", Toast.LENGTH_SHORT).show();
                    }
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(getActivity(), "Error ", Toast.LENGTH_SHORT).show();
                    Log.d(TAG, e.toString());
                }
            });

пожалуйста, исправьте мой синтаксис. Я действительно новичок в этом

Это EmployeeModel.class И, пожалуйста, покажите, как передать .getUsername в переменную Stringusername

public class EmployeeModel {
public static final String MFIELD_USERNAME = "username";
public static final String MFIELD_EMAIL = "email";
public static final String MFIELD_PASSWORD = "password";
public static final String MFIELD_LOCATION = "location";
public static final String MFIELD_PHONENUMBER = "phonenumber";
public static final String MFIELD_GENDER = "gender";
public static final String MFIELD_TYPE = "type";

private String username;
private String email;
private String password;
private String location;
private String phonenumber;
private String gender;
private String type;
private @ServerTimestamp Date timestamp;

public EmployeeModel() {
    // Default constructor required for calls to DataSnapshot.getValue(User.class)
}

public EmployeeModel(String username, String email, String password, String location, String phonenumber, String gender, String type, Date timestamp) {
    this.username = username;
    this.email = email;
    this.password = password;
    this.location = location;
    this.phonenumber = phonenumber;
    this.gender = gender;
    this.type = type;
    this.timestamp = timestamp;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getLocation() {
    return location;
}

public void setLocation(String location) {
    this.location = location;
}

public String getPhonenumber() {
    return phonenumber;
}

public void setPhonenumber(String phonenumber) {
    this.phonenumber = phonenumber;
}

public String getGender() {
    return gender;
}

public void setGender(String gender) {
    this.gender = gender;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public Date getTimestamp() {
    return timestamp;
}

public void setTimestamp(Date timestamp) {
    this.timestamp = timestamp;
}}

Это мой EmployeeModel.class и мой скриншот Firestore, пожалуйста, помогите! Спасибо

1 Ответ

0 голосов
/ 23 октября 2019

вам не хватает, чтобы получить модель из документа

if(documentSnapshot.exists()){
    EmployeeModel model = documentSnapshot.toObject(EmployeeModel.class);
    //

, просто добавьте строку после if statement к существующему коду, остальное кажется нормальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...