Seamless custom domains/urls for your Google Forms, Typeforms, and others!.
A React app that embeds your forms on your domain and uses Firebase for auth and database.
Rules
{
"rules": {
".read": false,
".write": false,
"urls": {
".read": true,
".write": "auth != null && root.child('admins/' + auth.uid).exists() && root.child('admins/' + auth.uid).val() === true",
"$pushKey": {
".validate": "newData.hasChildren(['short', 'full', 'type', 'time'])"
}
},
"admins": {
".read": "auth != null",
".write": "!root.child('admins').exists() || (auth != null && root.child('admins/' + auth.uid).exists() && root.child('admins/' + auth.uid).val() === true)",
"$uid": {
".validate": "newData.val() === true || newData.val() === false"
}
},
"users": {
".read": "auth != null && root.child('admins/' + auth.uid).exists() && root.child('admins/' + auth.uid).val() === true",
".write": false,
"$uid": {
".write": "auth != null && $uid === auth.uid",
".read": "auth != null && $uid === auth.uid"
}
},
"settings": {
".read": "auth != null && root.child('admins/' + auth.uid).exists() && root.child('admins/' + auth.uid).val() === true",
".write": "auth != null && root.child('admins/' + auth.uid).exists() && root.child('admins/' + auth.uid).val() === true"
}
}
}
Portion of Burrito in Logo is designed by Freepik