我正在构建一个 Android 应用程序,用户可以在其中通过输入体重(可选)和/或上传图片(可选)来跟踪体重和进度。
{
"users" : {
"5aHvYy5wTIVAAgdOEso0wr2woHS2" : {
"firstName" : "Justin",
"logs" : [ {
"date" : "16/05/2018",
"progressPicture" : "http://www.google.com/example.jpg",
"weight" : 82.1
}, {
"date" : "17/05/2018",
"progressPicture" : "http://www.google.com/example.jpg"
}, {
"date" : "18/05/2018",
"weight" : 80.3
} ]
}
}
我已使用以下代码通过按键排序并将结果限制为 1 来获取最新日志。
firebaseDatabase.getReference(USER_REFERENCE).child(firebaseAuth.currentUser?.uid).child(LOG_REFERENCE).orderByKey().limitToLast(1).
从我的JSON可以看出,一个日志不一定要有权重值。
我的问题: 我如何调整我的查询,以便在有权重值的地方检索我的最新日志(因此 1 个日志仅基于键)?
最佳答案
您可以添加名为 weight_log
的新条目,一旦记录了新权重,该条目就会更新,您可以使用将在每次触发时触发的 firebase 函数
轻松完成
/users/{userId}/weight_log/{iterationID}
创建事件
然后你可以在新路径上使用limitToLast(1)
一般来说,扁平化你的数据结构是个好习惯
关于android - Firebase 数据库查询 : return latest added object in which the child has a value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50385694/