如何在JavaScript中点击按钮时向Firestore数据库发送Timestamp时间戳
代码调整方案
调整后的完整代码如下,直接替换原有函数即可实现点击按钮写入审批时间戳的需求:
function sendDataToApprove() { const getId = localStorage.getItem("getId"); // 调试用alert可根据实际需求保留或删除 alert(getId); // 生成Firestore标准格式时间戳 const approveTimestamp = firebase.firestore.Timestamp.fromDate(new Date()); // 等待Firestore写入完成后再执行后续逻辑,避免数据写入失败 db.collection('Applications').doc(getId).update({ "Approved": true, "Pending": false, // 时间戳字段名可根据业务需求自定义,例如approvedAt、auditTime等 "approveTime": approveTimestamp }).then(() => { return Swal.fire({ title: 'Approved!', text: 'You Approved Your Policy', type: 'success', }); }).then(() => { window.location = "dashboard.html"; }).catch((error) => { // 可选:添加操作失败提示 console.error("审批数据提交失败:", error); Swal.fire('操作失败', '数据提交失败,请稍后重试', 'error'); }); }
关键调整说明
- 启用了原有代码中注释的时间戳生成逻辑,
firebase.firestore.Timestamp是Firestore官方提供的时间类型,存储后可直接在控制台识别为时间格式,支持后续按时间排序、范围查询等操作 - 将
update方法的传参改为对象格式,避免多字段更新时参数顺序错误问题,可读性更高 - 优化异步调用逻辑,确保Firestore数据写入完成后再执行弹窗、页面跳转操作,避免跳转过早导致数据丢失
- 补充了错误捕获逻辑,可根据需求自定义失败提示,避免用户无感知操作响应
内容的提问来源于stack exchange,提问作者saqib diar
相关产品推荐
相关产品推荐

