问题描述
当我运行 firebase emulators:start
时出现此错误
错误:无法在未指定规则文件的情况下启动存储模拟器 在 firebase.json 中
在安装 Storage 模拟器之前,我可以像这样设置 Firestore 的规则
{
"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
}
}
}
我相信我必须在这里设置存储规则。但我不知道怎么做。我找不到这方面的文档
解决方法
您看到的错误是由缺少存储规则文件引起的。该解决方案与您为 Firestore 设置规则的方式非常相似。
- 在与 firebase.json 相同的目录中创建一个名为
storage.rules
的文件。 - 向其中添加以下几行:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read,write: if request.auth != null;
}
}
}
- 在 firebase.json 中为存储模拟器指定规则文件:
"emulators": {
"storage": {
"port": 9199,"rules": "storage.rules"
},}
现在,可以启动模拟器了。