目前,我正在扫描 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(); }
1 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
根据您的评论,发生这种情况是因为当您使用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);
就像现在在您的代码中一样。看到正确的顺序了吗?
添加回答
举报
0/150
提交
取消