当前位置: 首页 > 知识库问答 >
问题:

查询Firestore数据库的日期范围

齐阎宝
2023-03-14
import UIKit
import Firebase

class DiscoverRideViewController: UIViewController {

    var userFullName = String()
    var dateEarly = Constants.UserInfo.chosenDate.addingTimeInterval(-900)
    var offset = TimeInterval()

    @IBOutlet weak var createRide: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        print(dateEarly)
        offset = TimeInterval(TimeZone.current.secondsFromGMT())
        print("timezone offset: ", offset)
        dateEarly = dateEarly.addingTimeInterval(offset)

        print("searching for documents:")
        let db = Firestore.firestore()
        db.collection("rides-wfu").whereField("aiport", isEqualTo: Constants.UserInfo.chosenAirport).whereField("ridetime", isGreaterThanOrEqualTo: dateEarly).getDocuments() { (querySnapshot, err) in
            if let err = err {
                print("Error getting documents: \(err)")
            } else {
                for document in querySnapshot!.documents {
                    print("\(document.documentID) => \(document.data())")
                }
            }
        }
    }

    @IBAction func newRideTapped(_ sender: Any) {
        let db = Firestore.firestore()
        print(Constants.UserInfo.chosenDate)
        db.collection("rides-wfu").addDocument(data: ["airport":Constants.UserInfo.chosenAirport, "ridetime":Constants.UserInfo.chosenDate, "groupmembers":[Constants.UserInfo.firstName+" "+Constants.UserInfo.lastName, "", "", ""]])
    }
}

这是当我尝试使用'where'而不是'where field'时收到的错误,尽管从文档中看,'where'似乎是查询Firestore数据库的有效命令。是不是我需要下载其他的豆荚?我有的是:pod'firebase/analytics'pod'firebase/auth'pod'firebase/core'pod'firebase/firestore'

共有1个答案

衡高寒
2023-03-14

您现在有以下查询:

db.collection("rides-wfu").where("ridetime", ">", timestampEarly)

这不是SWIFT的有效查询语法。你要找的是:

db.collection("rides-wfu").whereField("ridetime", isGreaterThanOrEqualTo: timestampEarly)

我强烈建议研究关于查询Firestore的Firebase文档,因为它包含了这方面的示例和更多类型的查询。

 类似资料:
  • 我的文档中有一个日期范围(使用日期对象)如下所示 我试图弄清楚如何构建一个查询来返回包含特定日期的所有事件,例如,像.... 如果查询显示类似这样的内容,但在Firestore查询限制下可能不可能出现这种情况。 因此,我一直在挠头几个小时,要么为此构建一个查询,要么以某种方式结构我的数据,以允许这样做。 这有可能吗?

  • 我需要帮助查询与日期范围的长收集。请参阅下面的示例文档。我想用日期范围查询startTime字段。

  • > 每个对象表示一个重复发生的事件。该事件可以在多个日期发生。因此,请考虑以下内容: 我有一个日历在客户端,用户可以选择一个日期范围。 > 对所选日期范围的每个条目进行调用,并在客户端处理聚合。问题是会有大量的读取,因为我们会多次读取重叠的日期范围内的同一个列表对象。 尝试使用类似ElasticSearch/Algolia的服务来完成此操作 任何建议都会很有帮助!

  • 我想在firestore数据库中查询文档id。目前我有以下代码: 我没有结果。但当我查询其他字段时,它会起作用: 文档id的名称是如何调用的?

  • 问题内容: 我有一个看起来像这样的数据库表: 写入此日志时,它包含日志记录和unix时间戳。我需要的是获取每周报告,以了解每周有多少日志记录。这是我写的查询: 这给出了这样的结果: 伟大的!但是我想看到的是一个日期范围,如,所以我的结果集如下所示: 有什么办法吗? 问题答案: 使用以获得合适的日期一样,然后用得到你需要的格式。

  • 问题内容: 我正在寻找从MySQL数据库创建以下图表。我知道如何实际创建图表(使用Excel或类似程序),我的问题是如何获取创建图表所需的数据。在此示例中,我可以看到1月1日有60张票处于绿线所示的状态。 我需要跟踪日期范围内项目的票证的历史状态。日期范围由项目经理确定(本例中为1月1日至1月9日)。 对于每张票,我都有以下一组历史数据。每次票证中发生某些更改(状态,描述,受让人,客户更新以及此问