如何设置存储规则以便 运行 我的 Firebase 存储模拟器?
How to set storage rules so I can run my Firebase storage emulator?
当我 运行 firebase emulators:start
我有这个错误
Error: Cannot start the Storage emulator without rules file specified
In firebase.json
在安装存储模拟器之前,我可以像这样设置 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"
},
}
现在,可以启动模拟器了。
更新
感谢大家对新版本更改的警告。使用最新版本,storage.rules
应该在 firebase.json:
的顶层定义
"emulators": {
"storage": {
"port": 9199
},
},
"storage": {
"rules": "storage.rules"
}
当我 运行 firebase emulators:start
我有这个错误
Error: Cannot start the Storage emulator without rules file specified In firebase.json
在安装存储模拟器之前,我可以像这样设置 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"
},
}
现在,可以启动模拟器了。
更新
感谢大家对新版本更改的警告。使用最新版本,storage.rules
应该在 firebase.json:
"emulators": {
"storage": {
"port": 9199
},
},
"storage": {
"rules": "storage.rules"
}