-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdatabase.rules.json
More file actions
55 lines (55 loc) · 1.99 KB
/
database.rules.json
File metadata and controls
55 lines (55 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{
"rules": {
"services": {
".read": "auth.uid != null",
".write": "auth.uid != null",
"$uid": {
".validate": "newData.hasChildren(['id', 'created_at', 'name', 'client_id', 'start_loc', 'status', 'wp_client_id']) && (!data.exists() || data.child('status').val() !== 'in_progress' || (newData.child('driver_id').val() === data.child('driver_id').val() || !newData.child('driver_id').exists()))"
},
".indexOn": ["created_at", "status", "driver_id"]
},
"online_drivers": {
".read": "auth.uid != null",
".write": "auth.uid != null",
"$uid": {
".validate": "newData.hasChildren(['location', 'id', 'version', 'versionCode']) && newData.child('id').val() === auth.uid && newData.child('version').isString() && newData.child('versionCode').isNumber() && newData.child('versionCode').val() >= root.child('settings').child('version_policy').child('min_driver_version_code').val() && (!newData.child('last_seen_at').exists() || newData.child('last_seen_at').isNumber()) && (!newData.child('session_id').exists() || newData.child('session_id').isString())"
}
},
"drivers_assigned": {
".read": "auth.uid != null",
".write": "auth.uid != null"
},
"service_connections": {
".read": "auth.uid != null",
".write": "auth.uid != null"
},
"settings": {
".read": "auth.uid != null",
".write": "auth.uid != null",
"version_policy": {
"min_driver_version_code": {
".validate": "newData.isNumber() && newData.val() > 0"
}
}
},
"wp_notifications": {
".read": "auth.uid != null",
".write": "auth.uid != null",
"arrived": {
".indexOn": ["wp_client_id"]
},
"new": {
".indexOn": ["wp_client_id", "client_id"]
},
"assigned": {
".indexOn": ["wp_client_id"]
},
"canceled": {
".indexOn": ["wp_client_id"]
},
"terminated": {
".indexOn": ["wp_client_id"]
}
}
}
}