【问题标题】:How to set storage rules so I can run my Firebase storage emulator?如何设置存储规则以便我可以运行我的 Firebase 存储模拟器?
【发布时间】:2021-09-16 02:56:06
【问题描述】:

当我运行 firebase emulators:start 时出现此错误

错误:在没有指定规则文件的情况下无法启动存储模拟器 在 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
    }
  }
}

我相信我必须在这里设置存储规则。但我不知道怎么做。我找不到这方面的文档

【问题讨论】:

    标签: firebase firebase-storage firebase-admin firebase-cli firebase-tools


    【解决方案1】:

    您看到的错误是由缺少存储规则文件引起的。该解决方案与您为 Firestore 设置规则的方式非常相似。

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

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

    【讨论】:

    • 在最新版本中,我不得不将storage/rules 放在emulators/storage 中,而不是放在firebase.json 的顶层。
    • @PeterKoltai 我也需要这样做。谢谢。
    猜你喜欢
    • 2018-08-09
    • 2019-07-21
    • 2020-02-05
    • 2020-03-30
    • 2021-09-21
    • 2017-08-11
    • 2019-11-10
    • 2020-10-03
    相关资源
    最近更新 更多