|
31 | 31 | ".validate": "newData.hasChildren(['created'])", |
32 | 32 |
|
33 | 33 | "created": { |
34 | | - // ensure that you can not change an existing value and that is it not in the future |
35 | | - ".validate": "data.exists() && data.val() === newData.val() || newData.isNumber() && newData.val() <= now && newData.val() > now - 1000" |
| 34 | + // Ensure type::timestamp and that you can not update it |
| 35 | + ".validate": "data.exists() && data.val() === newData.val() || newData.val() === now" |
36 | 36 | }, |
37 | 37 | "settings": { |
38 | 38 | ".validate": "!newData.exists() || newData.isString() && root.child('userSettings').child(newData.val()).child('user').val() === $userID" |
|
104 | 104 | ".validate": "newData.isString() && root.child('channelPublics').child(newData.val()).child('channel').val() == $channelID" |
105 | 105 | }, |
106 | 106 | "created": { |
107 | | - // Ensure type::number and that you can not update it |
108 | | - ".validate": "data.exists() && data.val() === newData.val() || newData.isNumber() && newData.val() <= now && newData.val() > now - 1000" |
| 107 | + // Ensure type::timestamp and that you can not update it |
| 108 | + ".validate": "data.exists() && data.val() === newData.val() || newData.val() == now" |
109 | 109 | }, |
110 | 110 | "updated": { |
111 | 111 | // Ensure type::number and that you can not update it |
112 | | - ".validate": "newData.isNumber() && newData.val() <= now" |
| 112 | + ".validate": "newData.val() == now" |
113 | 113 | }, |
114 | 114 | "isFeatured": { |
115 | 115 | ".validate": "newData.isBoolean() && (data.exists() && newData.val() === data.val() || newData.val() === false)" |
|
194 | 194 | ".validate": "newData.isString()" |
195 | 195 | }, |
196 | 196 | "created": { |
197 | | - ".validate": "data.exists() && data.val() === newData.val() || newData.isNumber() && newData.val() <= now && newData.val() > now - 1000" |
| 197 | + // Ensure type::timestamp and that you can not update it |
| 198 | + ".validate": "data.exists() && data.val() === newData.val() || newData.val() === now" |
198 | 199 | }, |
199 | 200 | "$other": { |
200 | 201 | ".validate": false |
|
212 | 213 | ".validate": "newData.hasChildren(['channel', 'url', 'ytid', 'title', 'created'])", |
213 | 214 |
|
214 | 215 | "created": { |
215 | | - // ".validate": "data.exists() && data.val() === newData.val() || newData.isNumber() && newData.val() <= now && newData.val() > now - 1000" |
216 | | - ".validate": "data.exists() && data.val() === newData.val() || newData.isNumber() && newData.val() <= now" |
| 216 | + // Ensure type::timestamp and that you can not update it |
| 217 | + ".validate": "data.exists() && data.val() === newData.val() || newData.val() === now" |
217 | 218 | }, |
218 | 219 | "url": { |
219 | 220 | ".validate": "newData.isString() && newData.val().length > 3" |
|
0 commit comments