I'm building a chat with firebase realtime database.
Let's say user1 has uid1 and user2 has uid2, their chatId will be uid1_uid2 (ordered asc). So the database chat/ looks like this:
chat {
uid1_uid2: [message, message...],
uid4_uid2:[message, message...],
uid5_uid1:[message, message...],
uid11_uid8:[message, message...]
}
Firebase rules are the following to allow only the interlocutors to have access to the conversation:
"chat": {
"$chatId": {
".write": "$chatId.contains(auth.uid)",
".read": "$chatId.contains(auth.uid)"
}
}
I want to get elements having uid1 in the chatId. So the expected return would be
{
uid1_uid2: [message, message...],
uid5_uid1:[message, message...]
}
Is there a way to get elements whose id contains a particular substring ? Something like...
databaseChat.child("contains uid1").on("value", snapshot => {
})