gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:36 26 4
gpt4 key购买 nike

目前,我正在扫描二维码,然后在 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

最佳答案

根据您的评论,发生这种情况是因为当您使用 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);

就像现在在您的代码中一样。看到正确的顺序了吗?

关于java - 我正在向 Firestore 数据库输入值,但它们没有进入正确的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52519630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com