从 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 CLI 部署错误:“部署到 Node.js 10 以下的运行时现在在 Firebase CLI 中被禁用。”
我可以完全从 CLI 或脚本创建和配置 GCP 项目 + Firebase 吗?