gpt4 book ai didi

swift - 为什么 Firestore 返回我的 where 查询中的所有记录

转载 作者:行者123 更新时间:2023-11-30 11:45:21 24 4
gpt4 key购买 nike

我正在尝试按名称查询我的收藏:

let db = Firestore.firestore()
print(searchString)
db.collection("Coins").order(by: "name").whereField("name", isGreaterThanOrEqualTo: searchString)
.getDocuments(){ (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {

var coins:[CryptoCompareService.Coin] = []
for document in querySnapshot!.documents {
let coin = try! FirestoreDecoder().decode(CryptoCompareService.Coin.self, from: document.data())

coins.append(coin)
}

}
}

我的收藏品看起来像这样:

enter image description here

我正在发送文本,但它总是返回集合中的所有项目。有什么想法吗?

编辑:看起来它处理大小写敏感性的方式很奇怪。当我输入 Eth 时,它会给出所有记录,但是当我输入“eth”时,它会给出 11 条记录。这也是错误的。或者至少我不明白搜索到底是怎么回事。

最佳答案

假设“名称”字段是识别每个条目的一种方式,请尝试将名称中存储的数据类型更改为整数而不是字符串(或者您可以添加另一个字段来存储条目的唯一编号并基于该编号执行查询)。我相信当您使用 isGreaterThanOrEqualTo 时,它会比较每个字符的 ascii 代码而不是其实际值或字符的词典顺序,这就是为什么您在编写“Eth”或“eth”时得到不同的结果。

在 ascii 代码中,“E”与“e”不同。

关于swift - 为什么 Firestore 返回我的 where 查询中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48895913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com