【问题标题】:Firestore query to firebase queryFirestore 查询到 Firebase 查询
【发布时间】:2021-06-27 06:10:09
【问题描述】:

我需要来自下面的 firestore 查询的等效 firebase 实时数据库查询

await db.collection('Events')
        .where('EventName', '>=', 'startcode')
        .where('EventName', '<', 'endcode').get()
        .then((snapshot) => {
            snapshot.forEach(doc => {
                const data = doc.data()
                searchList.push(data)



            })
        })

【问题讨论】:

  • 不幸的是,使用 Firebase 实时,您无法堆叠查询。您必须使用其中一个查询 firebase.google.com/docs/reference/js/firebase.database.Query 但是。您必须根据您的应用程序执行剩余的过滤客户端或服务器端。
  • 嘿@johnnoula,如果我的回答对您有帮助,您可以通过单击对勾和向上箭头图标来接受/投票,否则请随时提出进一步的问题。
  • @sychordCoder 实时数据库确实允许working with lists
  • @Dharmaraj 明白我想指出的是,您不能堆叠相同的查询,措辞不佳。

标签: firebase firebase-realtime-database google-cloud-firestore


【解决方案1】:

你可以试试filtering:

const snapshot = await firebase
       .database()
       .ref("/ref/to/events")
       .orderBy("EventName")
       .startAt("start_code")
       .endBefore("end_code")
       .once("value")

console.log(snapshot.val())

startAt() 返回大于或等于指定键的项或 值,取决于选择的排序方法。

endAt() 返回项目 小于或等于指定的键或值,具体取决于 选择的排序方法。

要使用此查询,您的数据库结构应类似于:

{
  events: {
    event1: {
      EventName: "event1name"
    },
    event2: {
      EventName: "event2name"
    }
  }
}

【讨论】:

    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 2018-05-18
    • 2019-06-15
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多