{
"SHOPPING_LIST" : {
"kPLZpp809gePpBiBojsngjZdg6A3:228c1e5b-fe11-4f06-ad32-c54734044a5e" : {
"listId" : "kPLZpp809gePpBiBojsngjZdg6A3:228c1e5b-fe11-4f06-ad32-c54734044a5e",
"listName" : "Lista de la compra de Jesús Lunar Pérez",
"owner" : "kPLZpp809gePpBiBojsngjZdg6A3",
"pendingListElements" : 0,
"sharedWithUsers" : [ "kPLZpp809gePpBiBojsngjZdg6A3" ]
}
},
"users" : {
"kPLZpp809gePpBiBojsngjZdg6A3" : {
"label" : "Jesús Lunar Pérez",
"userId" : "kPLZpp809gePpBiBojsngjZdg6A3",
"userInfo" : {
"nickName" : "Jesús Lunar Pérez",
"userEmail" : "lunarjchav@gmail.com"
}
}
}
}
I have stored this data in a realtime-database and I'm trying to get all SHOPPING_LISTs which are shared with some users.
I'm querying data such as:
Query query = FirebaseDatabase.getInstance()
.getReference("SHOPPING_LIST")
.orderByChild("sharedWithUsers")
.equalTo(userId /*userId = "kPLZpp809gePpBiBojsngjZdg6A3"*/)
;
but I'm not getting anything.
What am I doing wrong? Is there a way to debug queries?
Thanks in advance.
EDITED:
Finally, as suggested, I changed data organization to:
{
"SHOPPING_LIST" : {
"kPLZpp809gePpBiBojsngjZdg6A3:f65836e3-1f79-43a8-aae8-5a9bb9eb3929" : {
"listId" : "kPLZpp809gePpBiBojsngjZdg6A3:f65836e3-1f79-43a8-aae8-5a9bb9eb3929",
"listName" : "Lista de la compra de Jesús Lunar Pérez",
"owner" : "kPLZpp809gePpBiBojsngjZdg6A3",
"pendingListElements" : 0,
"sharedWithUsers" : {
"kPLZpp809gePpBiBojsngjZdg6A3" : true
}
}
},
"users" : {
"kPLZpp809gePpBiBojsngjZdg6A3" : {
"label" : "Jesús Lunar Pérez",
"userId" : "kPLZpp809gePpBiBojsngjZdg6A3",
"userInfo" : {
"nickName" : "Jesús Lunar Pérez",
"userEmail" : "lunarjchav@gmail.com"
}
}
}
}
and I queried like:
Query query = FirebaseDatabase.getInstance()
.getReference(ShoppingList.LIST_TYPE.name())
.orderByChild("sharedWithUsers/" + uid)
.equalTo(true)
;