Here's my db structure:
{
users: {
"userA": {
//data
},
"userB": {
//data
}
},
groups: {
"groupA": {
users: {
"userA": true,
"userC": true
},
//data
}
}
}
As you can see, userA and userB both have access to groupA.
I want to query a list of all groups that a user has access to:
const user = firebase.auth().currentUser
firebase
.database()
.ref('/groups')
.orderByChild(`users/${user.uid}`)
.equalTo(true)
.once('value', (v) => {
console.log(v.val())
});
How can I secure my db?
Currently, my rules look like this:
{
"rules":{
"groups": {
".read": "query.orderByChild == 'users/' + auth.uid"
}
}
}
But I'm getting an error:
Invalid == expression: right operand must be an ordering or string literal when comparing against an ordering.