When I run firebase emulators:start
I have this error
Error: Cannot start the Storage emulator without rules file specified In firebase.json
Before installing Storage emulator, I can set the rule for Firestore like this
{
"firestore": {
"rules": "./functions/firestore.rules"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
},
"emulators": {
"auth": {
"port": 9099
},
"functions": {
"port": 5001
},
"firestore": {
"port": 8080
},
"storage": {
"port": 9199
},
"ui": {
"enabled": true
}
}
}
I believe I have to set the rule for storage in here. But I don't know how. I can't find the docs for this
The error you're seeing is caused by a missing storage rules file. The solution is very similar to the way you set rules for Firestore.
storage.rules
in the same directory as firebase.json.rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
"emulators": {
"storage": {
"port": 9199,
"rules": "storage.rules"
},
}
Now, it's ready to start emulators.
Thank you everyone for warning about the change in the newer versions. With the latest version, storage.rules
should be defined at the top level in your firebase.json:
"emulators": {
"storage": {
"port": 9199
},
},
"storage": {
"rules": "storage.rules"
}