如何设置存储规则以便 运行 我的 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 设置规则的方式非常相似。

  1. 在与 firebase.json.
  2. 相同的目录中创建一个名为 storage.rules 的文件
  3. 向其中添加以下行:
rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}
  1. 在您的 firebase.json:
  2. 中指定存储模拟器的规则文件
"emulators": {
  "storage": {
    "port": 9199,
    "rules": "storage.rules"
  },
}

现在,可以启动模拟器了。

更新

感谢大家对新版本更改的警告。使用最新版本,storage.rules 应该在 firebase.json:

的顶层定义
"emulators": {
  "storage": {
    "port": 9199
  },
},
"storage": {
  "rules": "storage.rules"
}