【问题标题】:Property 'endBefore' does not exist on type 'Query'“查询”类型上不存在属性“endBefore”
【发布时间】:2022-01-06 16:15:14
【问题描述】:

我的编译器在这段代码中给出了以下错误

  const snap = await admin
    .database()
    .ref(`schedule/${studentId}`)
    .orderByChild('start')
    .startAt(startDate)
    .endBefore(endDate)
    .once('value')

错误是

Property 'endBefore' does not exist on type 'Query'.

但是,在查看 firebase 文档 (https://firebase.google.com/docs/reference/js/v8/firebase.database.Query) 时,endBefore 是 Query 上的一种方法!这是怎么回事?

【问题讨论】:

  • 您的 Firebase 管理员版本是多少?此外,您共享的文档是 Firestore,而不是实时数据库。
  • 版本 8.9.2,我试图弄清楚 endBefore 是从哪一点得到支持但找不到。
  • startAt() 确实返回了一个查询,因此您应该能够使用 endBefore。让我试试那个特定的版本。
  • endBefore 似乎是在 8.2.7 中添加的:firebase.google.com/support/release-notes/…,所以这应该不是问题。
  • 那个版本对我来说很适合类似的查询。尝试重新安装节点模块或重启 TS 服务。

标签: node.js firebase firebase-realtime-database


【解决方案1】:

endBefore 操作于 2021 年 2 月添加到 Firebase SDK for JavaScript/web 的 version 8.2.7。随后,它还于 2021 年 5 月添加到 Firebase Admin SDK for Node.js 的 version 9.8.0

这比你使用的版本更新,所以如果你想使用endBefore你应该升级到9.8或更高版本。

【讨论】:

    猜你喜欢
    • 2023-01-23
    • 2020-12-11
    • 2019-09-29
    • 2020-08-08
    • 2021-01-09
    • 2021-07-10
    • 2018-09-07
    • 2018-10-09
    相关资源
    最近更新 更多