【发布时间】:2022-11-18 06:07:10
【问题描述】:
我有一个简单的应用程序,允许用户输入电子邮件地址和日期。
我在 Firestore 中有一个集合,其中包含自动生成的文档名称并将两个字段保存在那里。像这样:
如果电子邮件 ID 已经在数据库中,我希望能够只更新日期(如果它更新匹配日期的电子邮件地址没有多大帮助,因为会有很多重复日期)。
任何帮助都会很棒。
到目前为止,这是我的 JS:
const db = getFirestore(firebaseApp);
const btn = document.getElementById("btn");
const docRef = btn.addEventListener('click', (e) => {
let mail = document.getElementById("email").value;
e.preventDefault,
setDoc(doc(db, "candidates", mail), {
email: document.getElementById("email").value,
date: Timestamp.fromDate(new Date(document.getElementById("date").value)),
});
});
问题已解决,最终工作代码:
const db = getFirestore(firebaseApp);
const btn = document.getElementById("btn");
let querySnapshot = getDocs(q);
let q = query(collection(db, "candidates"), where("email", "==", "..."));
const docRef = btn.addEventListener('click', (e) => {
let mail = document.getElementById("email").value;
e.preventDefault,
setDoc(doc(db, "candidates", mail), {
email: document.getElementById("email").value,
date: Timestamp.fromDate(new Date(document.getElementById("date").value)),
if (querySnapshot.size === 1) {
const docRef = querySnapshot.docs[0].ref;
updateDoc(docRef, {...});
}
});
重新访问此代码后,它现在不再起作用。当我解决这个问题时会更新。
【问题讨论】:
标签: javascript firebase google-cloud-firestore