Skip to content

Commit eb84848

Browse files
committed
Fixed passing number rather than string to child() in Firebase rule.
1 parent 72ebc8f commit eb84848

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

firebase-rules.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
},
1313
"activePoll": {
1414
".write": "auth != null",
15-
".validate": "!newData.exists() || (newData.hasChildren(['id', 'question', 'options', 'duration', 'resultPolicy', 'correctPolicy', 'startedAt', 'ended', 'revealResults', 'revealCorrect']) && newData.child('id').isString() && newData.child('question').isString() && newData.child('options').hasChildren() && newData.child('duration').isNumber() && newData.child('duration').val() >= 1 && newData.child('duration').val() <= 3600 && newData.child('resultPolicy').isString() && (newData.child('resultPolicy').val() == 'on_submit' || newData.child('resultPolicy').val() == 'manual' || newData.child('resultPolicy').val() == 'never') && newData.child('correctPolicy').isString() && (newData.child('correctPolicy').val() == 'with_results' || newData.child('correctPolicy').val() == 'manual' || newData.child('correctPolicy').val() == 'never') && newData.child('startedAt').isNumber() && newData.child('ended').isBoolean() && newData.child('revealResults').isBoolean() && newData.child('revealCorrect').isBoolean() && (!newData.child('correctIndex').exists() || (newData.child('correctIndex').isNumber() && newData.child('correctIndex').val() >= 0 && (newData.child('correctIndex').val() % 1 == 0) && newData.child('options').child(newData.child('correctIndex').val()).exists())))",
15+
".validate": "!newData.exists() || (newData.hasChildren(['id', 'question', 'options', 'duration', 'resultPolicy', 'correctPolicy', 'startedAt', 'ended', 'revealResults', 'revealCorrect']) && newData.child('id').isString() && newData.child('question').isString() && newData.child('options').hasChildren() && newData.child('duration').isNumber() && newData.child('duration').val() >= 1 && newData.child('duration').val() <= 3600 && newData.child('resultPolicy').isString() && (newData.child('resultPolicy').val() == 'on_submit' || newData.child('resultPolicy').val() == 'manual' || newData.child('resultPolicy').val() == 'never') && newData.child('correctPolicy').isString() && (newData.child('correctPolicy').val() == 'with_results' || newData.child('correctPolicy').val() == 'manual' || newData.child('correctPolicy').val() == 'never') && newData.child('startedAt').isNumber() && newData.child('ended').isBoolean() && newData.child('revealResults').isBoolean() && newData.child('revealCorrect').isBoolean() && (!newData.child('correctIndex').exists() || (newData.child('correctIndex').isNumber() && newData.child('correctIndex').val() >= 0 && (newData.child('correctIndex').val() % 1 == 0) && newData.child('options').child(newData.child('correctIndex').val().toString()).exists())))",
1616
"responses": {
1717
"$student": {
18-
".validate": "newData.isNumber() && newData.val() >= 0 && (newData.val() % 1 == 0) && root.child('session/activePoll/options').child(newData.val()).exists()"
18+
".validate": "newData.isNumber() && newData.val() >= 0 && (newData.val() % 1 == 0) && root.child('session/activePoll/options').child(newData.val().toString()).exists()"
1919
}
2020
}
2121
},
@@ -35,7 +35,7 @@
3535
".read": "auth != null",
3636
"$poll": {
3737
".write": "auth != null",
38-
".validate": "!newData.exists() || (newData.hasChildren(['id', 'question', 'options', 'duration', 'resultPolicy', 'correctPolicy', 'startedAt']) && newData.child('id').isString() && newData.child('question').isString() && newData.child('options').hasChildren() && newData.child('duration').isNumber() && newData.child('resultPolicy').isString() && (newData.child('resultPolicy').val() == 'on_submit' || newData.child('resultPolicy').val() == 'manual' || newData.child('resultPolicy').val() == 'never') && newData.child('correctPolicy').isString() && (newData.child('correctPolicy').val() == 'with_results' || newData.child('correctPolicy').val() == 'manual' || newData.child('correctPolicy').val() == 'never') && newData.child('startedAt').isNumber() && (!newData.child('endedAt').exists() || newData.child('endedAt').isNumber()) && (!newData.child('correctIndex').exists() || (newData.child('correctIndex').isNumber() && newData.child('correctIndex').val() >= 0 && (newData.child('correctIndex').val() % 1 == 0) && newData.child('options').child(newData.child('correctIndex').val()).exists())))"
38+
".validate": "!newData.exists() || (newData.hasChildren(['id', 'question', 'options', 'duration', 'resultPolicy', 'correctPolicy', 'startedAt']) && newData.child('id').isString() && newData.child('question').isString() && newData.child('options').hasChildren() && newData.child('duration').isNumber() && newData.child('resultPolicy').isString() && (newData.child('resultPolicy').val() == 'on_submit' || newData.child('resultPolicy').val() == 'manual' || newData.child('resultPolicy').val() == 'never') && newData.child('correctPolicy').isString() && (newData.child('correctPolicy').val() == 'with_results' || newData.child('correctPolicy').val() == 'manual' || newData.child('correctPolicy').val() == 'never') && newData.child('startedAt').isNumber() && (!newData.child('endedAt').exists() || newData.child('endedAt').isNumber()) && (!newData.child('correctIndex').exists() || (newData.child('correctIndex').isNumber() && newData.child('correctIndex').val() >= 0 && (newData.child('correctIndex').val() % 1 == 0) && newData.child('options').child(newData.child('correctIndex').val().toString()).exists())))"
3939
}
4040
},
4141
"pollSets": {

0 commit comments

Comments
 (0)