Я ввожу значения в базу данных Firestore, но они не попадают в правильные поля - PullRequest
0 голосов
/ 26 сентября 2018

В настоящее время я сканирую QR-код, а затем обновляю свою коллекцию посещаемости в Cloud Firestore.Это не помещает их в правильное место, и я использую класс модели типа Attendance.Вот мой код:

 final FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
                        final DocumentReference docRef = rootRef.collection("Session").document(rawValue);
                        docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                            @Override
                            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                                if (task.isSuccessful()){
                                    DocumentSnapshot document = task.getResult();
                                    if (document.exists()) {

                                        Date timeToCheck = calendar.getTime();
                                        Session session = document.toObject(Session.class);
                                        Date startTime = session.getStartTime();
                                        Date endTime = session.getEndTime();
                                        if (timeToCheck.after(startTime) && (timeToCheck.before(endTime))) {
                                            Attendance attendance = new Attendance(rawValue, userUID, date, userEmail);
                                            attendanceRef3.add(attendance);
                                            Toast.makeText(StudentAccount.this,
                                                    "Your attendance has been recorded", Toast.LENGTH_SHORT).show();
                                        } else {
                                            Toast.makeText(StudentAccount.this,
                                                    "You are outside the time parameters for this session", Toast.LENGTH_SHORT).show();
                                        }
                                    }
                                    else {
                                        Toast.makeText(StudentAccount.this,
                                                "Session does not exist", Toast.LENGTH_SHORT).show();

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

package com.dissertation.studentscanner;

public class Attendance {

private String sessionID;
private String userUID;
private String signInTime;
private String userEmail;

public Attendance(){
    //public no-arg constructor needed
}



public Attendance(String userUID){
    this.userUID = userUID;
}

public Attendance (String sessionID, String userUID){
    this.sessionID = sessionID;
    this.userUID = userUID;
}

public Attendance( String sessionID, String date, String userEmail, String userUID){
    this.sessionID = sessionID;
    this.signInTime = date;
    this.userEmail = userEmail;
    this.userUID = userUID;

}

public String getSessionID(){
    return sessionID;
}

public String getUserUID(){
    return userUID;
}

public String getSignInTime(){
    return signInTime;
}

public String getUserEmail(){
    return userEmail;
}

Это все еще идет таким образом

enter image description here

1 Ответ

0 голосов
/ 26 сентября 2018

Согласно вашему комментарию, это происходит потому, что когда вы добавляете данные в базу данных, используя объект вашего класса Attendance, вы передаете значения конструктора в неправильном порядке.Конструктор объявляется следующим образом:

public Attendance( String sessionID, String date, String userEmail, String userUID)

Поэтому, когда вы создаете новый объект класса Attendance, вы должны передать конструктору следующие значения:

Attendance attendance = new Attendance(rawValue, date, userEmail, userUID);

, а не:

Attendance attendance = new Attendance(rawValue, userUID, date, userEmail);

Как сейчас в вашем коде.Видите правильный заказ?

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