Firebase规则及其测试方法

Firebase规则及其测试方法,firebase,firebase-security,Firebase,Firebase Security,我正在努力建立Firebase后端。起初,这非常简单,但随着规则的发展,发现安全漏洞变得越来越困难。实际测试规则的选项是什么?我研究过Targryen,这是一个第三方库,但无法在OSX上安装和运行它。是否有更常见的方法来测试规则?最常用的Firebase安全测试方法是什么?如果您还没有看到,在应用程序的Firebase控制面板中,左侧有许多选项;数据、安全和规则、模拟器;模拟器是你想要的 到达后,您可以作为用户进行身份验证,然后在不同的子节点上测试读写能力 我们制作了自己的小应用程序,可以对不同

我正在努力建立Firebase后端。起初,这非常简单,但随着规则的发展,发现安全漏洞变得越来越困难。实际测试规则的选项是什么?我研究过Targryen,这是一个第三方库,但无法在OSX上安装和运行它。是否有更常见的方法来测试规则?最常用的Firebase安全测试方法是什么?

如果您还没有看到,在应用程序的Firebase控制面板中,左侧有许多选项;数据、安全和规则、模拟器;模拟器是你想要的

到达后,您可以作为用户进行身份验证,然后在不同的子节点上测试读写能力


我们制作了自己的小应用程序,可以对不同的节点进行读/写操作:随着我们的应用程序的发展,规则的复杂性也随之增加,通过应用程序测试20个节点变得更容易,然后在模拟器中一次测试一个节点。我们的测试应用程序大约有100行代码。

我刚刚设置了Bolt,它看起来比通过Firebase UI使用标准规则和模拟器要好得多

您确实需要实际使用Bolt语法,但我发现它比标准规则要容易得多,尤其是当它们变得越来越大和复杂时,因为Bolt允许您创建函数来重用用于读/写/验证逻辑的公共代码。这次测试对我来说只是一种奖励

  • 螺栓简介:
  • 测试说明:
需要注意的几点:

  • 说明中说要全局安装
    firebase bolt
    ,但是节点可以找到它,除非它是本地安装的,或者您链接到全局安装
  • 确保摩卡咖啡的运转。如果将
    --ui-tdd
    添加到
    “test”:“mocha--ui-tdd”
    包.json
    文件的
    脚本部分,并将测试保存在
    测试/test.js
    中,则只需运行
    npm-test
    即可运行所有测试
      • 制定你可以使用的规则
      • 要针对live db测试您的规则,您可以使用REST api,使用调试标志设置为true的令牌(用于创建这些令牌的数据库机密已被弃用,但我认为您不会使用新的Firebase Admin SDK创建此类令牌);响应标头将包含有关规则评估的调试信息
      • 要调试规则和生产数据,请使用firebase控制台中的模拟器(注意,它不允许模拟AFAIK的更新操作)

      您退房了吗?它有内置的验证和测试。不,我没有。但我会查一查。但最常见的测试规则的方法是什么?还是说每个人都只是依靠自己;“希望我写对了”?规则模拟器和螺栓将是常用的测试方法。啊,酷。完全错过了那个。自动化测试呢?我是否必须研究像Targryen这样的第三方库来创建自动化测试,还是有一种通用的方法来创建自动化测试?这取决于您对“自动化测试”的定义。我们编写的微型应用程序自动化程度相当高。单击一下,它会告诉我们所有规则是否都有效,如果没有,则需要寻址哪个节点。您可以使用自定义应用程序测试写操作吗?也许你有一个Firebase的开发副本用于测试,这样你就不会破坏生产了?我正在用Targryen做实验。特别是用摩卡+柴看起来很不错。但它有两个缺点。1) 它不是真正的活动()2)Firebase不正式支持它,这可能意味着它没有执行与Firebase完全相同的控制(????)旧Firebase文档在第三方列表上有Targryen,并且Targaryen@3更接近规范;它包括对一个实时db的e2e测试。我刚开始玩Bolt,但自2016年2月以来它就不是很活跃了:。这些测试在Firebase 3.0上不起作用