【问题标题】:Firestore code to get values of collections获取集合值的 Firestore 代码
【发布时间】:2020-10-04 01:43:53
【问题描述】:

我有一个非常复杂的 Firestore 查询,我想寻求帮助,它会很长,但我会附上照片以便更好地理解。

我想使用 useEffect 执行一个 Firestore 查询,计算一周的业务收入,并最终将其与月总收入相加(目前不太希望月收入)。

我的 Firebase 集合结构的 1 号照片:

红圈 = 这个数字代表预约的月份.......................... ..................... Blue Circle = 这个数字代表预约的日期,如果我们将这两个结合起来,我们将得到预约安排在 10 月 2 日。

图片编号 2:

我需要查询来提取下一个约会的工作日,这意味着如果约会是在 10 月 2 日,那一天将是 Friday(5),并创建一个变量来保存和汇总所有 serviceCost 价格。 在一天结束时,我想在图表中显示周日、周一等的收入......

这是我useEffect的开始:

  useEffect(() => {
var d = new Date();
var CurrentMonth = d.getMonth() + 1;
firebase
  .firestore()
  .collection("users")
  .doc(uid)
  .collection("appointments")
  .get()
  .then((snapshot) => {
    snapshot.forEach((doc) => {
     //Stuck here
    });
  });

}, []);

抱歉,我刚刚卡住了很长的问题

【问题讨论】:

    标签: javascript firebase react-native google-cloud-firestore


    【解决方案1】:

    我认为您可能通过为每个月创建集合而产生了一个问题,您实际上将日期视为连续流。我的意思是,回到 9 月 30 日,您的下一次约会可能是 10 月 2 日,并且在您当前的结构中,这需要您查询两个集合。

    我建议将所有约会日期存储在一个集合中,例如 appointmentDays 并将每个文档命名为 year-day-month。然后,您可以查询(例如)9 月 30 日之后的第一次约会:

    firebase.firestore()
      .collection("appointmentDays")
      .startAfter("2020-09-30")
      .limit(1)
    

    【讨论】:

    • 我会和我的代码编写者一起考虑,但我们也想尝试按照我要求的方式实现它,因为我们有这个大学项目的截止日期,如果您有任何建议,请告诉我像他们那样做我为什么问
    猜你喜欢
    • 2019-02-17
    • 2020-03-07
    • 2018-04-09
    • 2019-07-06
    • 2021-03-04
    • 2018-04-09
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    相关资源
    最近更新 更多