javascript - 在 firebase 中查询日期的 startAt 和 endAt

标签 javascript firebase firebase-realtime-database

我有以下数据结构:

attendance
--- 2020-02-09-PM
--- 2020-02-11-PM
--- 2020-02-16-AM
--- 2020-02-16-PM
--- 2020-02-18-PM

例如,我想获取 2020-02-16 的日期,我需要 PM 和 AM。所以我想查询我的数据库以仅获取该数据。

这是我的尝试:

function getAttendanceCount(orgUid, dates) {
   orgUid.forEach(uid => {
     dates.forEach(date => {
       const getAttendCount = fDB.ref(`organization/${uid}/attendance`)
      .orderByChild('attendance')
      .startAt(date+'-AM')
      .endAt(date+'-PM')
      .once('value')
      .then(c => console.log(c.val()));
   });
 })
}

我的 console.log 为空。 知道如何实现这一目标吗?

最佳答案

更改此:

const getAttendCount = fDB.ref(`organization/${uid}/attendance`)
      .orderByChild('attendance')

进入此:

const getAttendCount = fDB.ref(`organization/${uid}/attendance`)
      .orderByKey()

您需要使用 orderByKey() 的原因是因为日期充当键,而不是作为具有值示例的 child:

"name" : "peter"

关于javascript - 在 firebase 中查询日期的 startAt 和 endAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60359525/

相关文章:

javascript - 在嵌套的 ng-repeat 中为我所在的任何对象动态抓取 Firebase 数据

javascript - Web SQL 向多行插入数据

javascript - 引用 .click() 仅在短时间内显示目的地

javascript - 在 Firebase 上登录后的路由

firebase - Firestore 仅查询大小

ios - Firebase 授权谷歌 + Facebook = 崩溃

php - 单击提交按钮时不使用重定向

javascript - 仅当屏幕小于屏幕时才在屏幕底部显示 div

firebase - flutter firebase 使用 refreshToken 自动刷新用户 session

java - 如何检查用户是否已通过 gmail 或 google 帐户登录?