swift - Swift 4:使用 Firestore 对数据进行排序
问题描述
我正在尝试挑选当天观看次数最多的 3 餐。使用此代码我得到不正确的详细信息。所以我的结构是这样的:
- meals
-- e.g Kebab
--- view_count
--- order_count
--- like_count
我的代码:
let mealsRef = db.collection("meals").order(by: "view_count").limit(to: 3)
// [START order_and_limit]
mealsRef.getDocuments { (snap, err) in
let dcs = snap!.documents
for i in dcs {
var data = i.data()
print("meal => \(data["meal"] ?? ""), view_count => \(data["view_count"] ?? "")")
}
}
对于测试建议,我在 Firebase 控制台上将 view_count 增加了 300 - 200 - 100。但它返回三个但不正确的。
谢谢你们
金,
解决方案
Firestore 的默认顺序是升序。所以你得到了 view_count 最少的 3 顿饭。尝试使用降序选项的 order 方法:
func order(by field: String, descending: Bool) -> Query
推荐阅读
- c++ - c ++函数没有捕获超出范围执行的向量下标
- regex - perl 将字典短语字符串与 / 在其中拆分和组合(以便更好地访问短语条目)
- netweaver - 用户删除日志存储在 SAP 的什么位置?
- bash - 用 \n 和尾随 \n 替换命令输出中的所有 \0
- javascript - bluebird.js 等待 Promise.all(); 在处理程序警告中创建了一个承诺
- arrays - 如何将 B 列中的值更直接地设置为选择行的高度并激活下一行?
- database - vb.net 用特定值更新每一行
- django - 历史数据跟踪的优化模型设计
- php - 对 Symfony 服务类进行单元测试
- javascript - 使用 sequelize.query 缓存