swift - firebase 中的超级简单查询出错(swift)
问题描述
我正在尝试基于纪元时间戳做一个简单的有序查询请求:
guard let user = Auth.auth().currentUser?.uid else {return}
let queryRef = Database.database().reference().child("ordersBackup").child(user).queryOrdered(byChild: "pickupCompleteAfter").queryLimited(toFirst: 1)
queryRef.observeSingleEvent(of: .childAdded, with: { (snapshot) in
print(snapshot.value)
})
结构:
{
"UserId" : {
"UniqueId1" : {
"pickupCompleteAfter" : 1568314979000,
"name" : "Jeff"
},
"UniqueId2" : {
"pickupCompleteAfter" : 1557687779000,
"name" : "Stig"
},
"UniqueId3" : {
"pickupCompleteAfter" : "1578855779000",
"name" : "Ali"
}
}
}
它应该返回 UniqueId2。但是,我总是检索与结构相同的顺序,即 UniqueId1、UniqueId2、UniqueId3。它根本不考虑时间戳。我究竟做错了什么?
输出:
LQ8nHi
{
orderInfo = {
deliveryCompleteAfter = 1552917600000;
deliveryCompleteBefore = 1552924800000;
pickupCompleteAfter = 156249280000;
pickupCompleteBefore = 1552492800000;
};
}
YQxeKv
{
orderInfo = {
deliveryCompleteAfter = 1552917600000;
deliveryCompleteBefore = 1552924800000;
pickupCompleteAfter = 1557687779000;
pickupCompleteBefore = 1552492800000;
};
}
ibIPO9
{
orderInfo = {
deliveryCompleteAfter = 1553090400000;
deliveryCompleteBefore = 1553097600000;
pickupCompleteAfter = 1578855779000;
pickupCompleteBefore = 1552665600000;
};
}
解决方案
pickupCompleteAfter
嵌套在orderInfo
每个孩子的节点下。您当前没有告诉数据库该完整路径,因此它仅检查pickupCompleteAfter
每个孩子下方的权利。
要订购/过滤orderInfo/pickupCompleteAfter
,请使用:
let query = Database.database().reference().child("ordersBackup").child(user)
.queryOrdered(byChild: "orderInfo/pickupCompleteAfter").queryLimited(toFirst: 1)
query.observeSingleEvent(of: .childAdded, with: { (snapshot) in
print(snapshot.value)
推荐阅读
- laravel - Laravel Notification 重复错误,通过(数据库,电子邮件)发送多个通知
- android - 对话框中 Spinner 和 EditText 不为空时启用按钮
- android - ExecutionException:com.google.android.apps.gsa.sidekick.main.hn:无法完成刷新条目的计划请求。客户端错误代码:3
- python - 为什么在多进程中生成 UUID4 重复?
- java - WildFly 10 与 WebSphere MQ 9:onMessage MDB 部署错误
- javascript - 使用 async/await 来查找 cors 请求的值?
- javascript - React Application SSO 登录问题
- php - Laravel 在 Ubuntu16.04 上安装得到 http error500
- ios - 从 iOS 中的 HLS 下载特定分辨率
- python - 如何将 .ipynb 文件导入另一个