【问题标题】:Firestore data aggregation of documents文档的 Firestore 数据聚合
【发布时间】:2021-04-22 16:25:48
【问题描述】:

我正在创建一个费用跟踪器应用程序,用户可以在其中设置每月预算(即 3,000 美元),并且每次用户添加费用时,“当月总支出”字段都会更新。我将如何使用 Firestore 数据库执行此操作?到目前为止,我已将费用记录存储在用户集合内的文档(使用用户 ID)内的子集合中。

  expenseForm.addEventListener('submit', e => {
    e.preventDefault();
    db.collection('users').doc(user.uid).collection('expense-record').doc().set({
      title: expenseTitle.value,
      amount: expenseAmount.value,
      category: expenseCategory.value,
      date: expenseDate.value,
    });
  });

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    哦,这是一个有趣的用例。

    如果你想防止用户花费超过他们的预算,我会:

    1. 将预算存储在数据库中的某个位置。
    2. 也存储当月的总支出,并使用安全规则确保添加/删除的每条支出记录也会更新当月的总支出。
    3. 使用安全规则拒绝会导致总金额超出预算的支出记录。

    这些都不是微不足道的,但它们可以让您拥有一个纯粹的客户端解决方案。我想其他人可能会用 Cloud Functions 之类的解决方案来回答,这也是完全有效的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    相关资源
    最近更新 更多