You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 22:06:02