Reputation: 4519
I want to make use of Firebase realtime database. I have created the data structure I want. You have members, rooms and the relation between them. Everyone in a room can "talk" to each other.
The json data structure:
{
members : {
"223dfa323" : {
name : "Test member",
os : "IOS",
date_registered : "2017-02-02",
enabled : true
},
"ddfa33434" : {
name : "Test member 2",
os : "Android",
date_registered : "2017-02-03",
enabled : true
},
"3434" : {
name : "Test member 3",
os : "Android",
date_registered : "2017-02-03",
enabled : true
}
},
rooms : {
"1234" : {
name : "Room 1",
date_created : "2017-02-02",
enabled : true
},
"2312" : {
name : "Room 2",
date_registered : "2017-02-03",
enabled : true
}
},
roommembers : {
"1234" : {
members : {
"223dfa323" : true,
"ddfa33434" : true
}
}
}
}
But how can I prevent that others can access that data? How can I give members access to the own data? Member 3434 has no access to room 1234 for example, because it is not linked to it.
The other devices can access that data.
How can I do this in Firebase?
Upvotes: 2
Views: 1146
Reputation: 7544
You can use firebase's security rules. In your case these could be:
"rules": {
"rooms": {
"$roomID": {
".read": .read": "root.child('roommembers/'+$roomID+'/members/'+auth.uid).exists()"
}
}
}
Upvotes: 2