我正在向 Firestore 数据库输入值,但它们没有进入正确的字段

目前,我正在扫描 QR 码,然后在 Cloud Firestore 中更新我的出勤收集。它没有将它们放在正确的位置,我使用的是 type 的模型类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();

                                        } 

http://img4.mukewang.com/616665d3000199b805060237.jpg



PIPIONE
浏览 133回答 1
1回答

潇潇雨雨

根据您的评论,发生这种情况是因为当您使用Attendance类的对象向数据库添加数据时,您以不正确的顺序传递给构造函数值。构造函数声明如下:public&nbsp;Attendance(&nbsp;String&nbsp;sessionID,&nbsp;String&nbsp;date,&nbsp;String&nbsp;userEmail,&nbsp;String&nbsp;userUID)因此,当您创建类的新对象时,Attendance您应该将以下值传递给构造函数:Attendance&nbsp;attendance&nbsp;=&nbsp;new&nbsp;Attendance(rawValue,&nbsp;date,&nbsp;userEmail,&nbsp;userUID);并不是:Attendance&nbsp;attendance&nbsp;=&nbsp;new&nbsp;Attendance(rawValue,&nbsp;userUID,&nbsp;date,&nbsp;userEmail);就像现在在您的代码中一样。看到正确的顺序了吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java