如何使用命令行部署 Firebase 数据库安全规则?

Posted

技术标签:

【中文标题】如何使用命令行部署 Firebase 数据库安全规则?【英文标题】:How do I deploy Firebase Database Security rules using the command line? 【发布时间】:2016-11-11 14:33:18 【问题描述】:

在旧版本的 Firebase 中,我们可以在 firebase.json 文件中添加一个 rules 部分,并在每次部署时上传新的安全规则。

我们如何使用firebase-tools v3 命令行工具来部署数据库安全规则?

This page 说有可能:“Firebase 存储规则”

This page 提示命令行工具可以做到这一点,但firebase --helpfirebase deploy --help 似乎没有提示如何做到这一点? (如果错过了请见谅……)

(相关:可以进入firebase.json 的所有内容的规范文档在哪里?我在旧的 Firebase 网站上找到了它,但在新文档上的搜索中找不到它。)

谢谢!

【问题讨论】:

【参考方案1】:

使用 firebase cli 部署一组新的安全规则

firebase deploy --only firestore:rules

【讨论】:

【参考方案2】:

您可以在命令行中使用firebase deployfirebase deploy --only database但最重要的是:

请注意下面 firebase.json 格式"rules" 条目 "database" 条目下。

取自Firebase Sample code.


  "database": 
    "rules": "database-rules.json"
  ,
  "hosting": 
    "public": "./",
    "ignore": [
      "firebase.json",
      "database-rules.json",
    ]
  

【讨论】:

【参考方案3】:

如果您只想更新数据库规则,可以使用firebase deploy --only database。它将覆盖您现有的规则。

您可以查看Firebase CLI Reference 了解更多信息

【讨论】:

如果使用 Firestore:firebase deploy --only firestore【参考方案4】:

要部署一组新的安全规则,请将rules ***密钥添加到您的firebase.json

示例firebase.json 文件:


  "rules": "firebase_rules.json",
  "hosting": 
    "public": "doc",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  

firebase_rules.json 是一个包含安全规则的 JSON 文件。这是一个例子:


  "rules": 
    ".read": false,
    ".write": false
  

当您运行firebase deploy 时,它会将firebase_rules.json 的内容发送到服务器,替换/更新任何规则配置。

【讨论】:

这个语法对我不起作用,请在此处查看我的答案 是的,@LiorK 似乎有正确、最新的方式来指定数据库规则文件。

以上是关于如何使用命令行部署 Firebase 数据库安全规则?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firebase 托管上部署流线型 python 应用程序?

如何从命令行 (CLI) 更改 Firebase 用户登录身份?

使用firebase部署时出现不安全的连接错误

如何在没有身份验证的情况下添加 Firebase 数据库规则?

如何使用 Firebase 功能部署 Angular 9 通用应用程序

如何使用 nuxt firebase 部署 Web 应用程序?