从 CLI 启动时,Firebase Local Emulator Suite 找不到“database.rules.json”文件

Posted

技术标签:

【中文标题】从 CLI 启动时,Firebase Local Emulator Suite 找不到“database.rules.json”文件【英文标题】:Firebase Local Emulator Suite does not find the 'database.rules.json' file when started from CLI 【发布时间】:2021-10-22 05:45:59 【问题描述】:

firebase.json 文件:


  "emulators": 
    
      "auth": 
      "port": 9099
    ,
   "database": 
   "port": 9000,
   "rules": "database.rules.json",
   "target": "default"
   ,
   "ui": 
     "enabled": true
     
   
 

database.rules.json 文件旁边有一个 database.rules.json 文件,其中包含可在实时数据库上正常工作的 json 规则。

命令自动创建的文件:

firebase 初始化模拟器

都在项目根目录中。我从实时项目中复制了规则,并在其他文件旁边创建了 database.rules.json 文件,如下所示:

ROOT
  |
  |.firebaserc
  |firebase.json
  |database.rules.json

但是,CLI 命令:

$ firebase 模拟器:开始

返回以下错误:

⚠ 数据库:未找到在 firebase.json 配置文件中指定的实时数据库规则文件。

模拟器运行正常,但不考虑规则。

为什么模拟器找不到“database.rules.json”?这是路径问题吗?

【问题讨论】:

也许您可以分享您的项目文件和目录结构,以便我们可以查看该文件与 firebase.json 和您项目的其余部分的实际关系? 好的@DougStevenson,将编辑... 【参考方案1】:

它没有按预期工作的原因是应该启动本地数据库,但没有。

要启动本地数据库,应使用以下命令:

firebase 初始化数据库

因为我有一个现有的数据库(由实时控制台创建),我在使用交互式命令时已将其与本地项目链接:

firebase 初始化模拟器

我想我可以启动模拟器并进行测试。不是这样。

未能使用 CLI 命令启动数据库似乎会触发 CLI 响应:

⚠ 数据库:未找到在 firebase.json 配置文件中指定的实时数据库规则文件

真正的意思是:

呃,没有本地数据库。您必须先创建一个本地数据库,即使您将此项目链接到现有的远程数据库

【讨论】:

【参考方案2】:

试试这样的

firebase.json


  "functions": 
    "source": "functions"
  ,
  "firestore": 
    "rules": "./firestore.rules"
  ,
  "database": 
    "rules": "./database.rules.json"
  ,
  "emulators": 
    "auth": 
      "port": 9099
    ,
    "functions": 
      "port": 5001
    ,
    "firestore": 
      "port": 8080
    ,
    "database": 
      "port": 9000
    ,
    "hosting": 
      "port": 5000
    ,
    "pubsub": 
      "port": 8085
    ,
    "storage": 
      "port": 9199
    ,
    "ui": 
      "enabled": true
    
  

【讨论】:

以上是关于从 CLI 启动时,Firebase Local Emulator Suite 找不到“database.rules.json”文件的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 部署找不到 firebase.json

如何从 firebase cli 切换应用程序?

Firebase CLI 部署错误:“部署到 Node.js 10 以下的运行时现在在 Firebase CLI 中被禁用。”

我可以完全从 CLI 或脚本创建和配置 GCP 项目 + Firebase 吗?

必须在 Firebase CLI 数据请求中适当处理 Promise

Firebase 应用程序在从后台激活时在启动时崩溃