在 Firebase 和代码中编写规则

2023-12-05

Firebase 建议除了代码(swift/java 等)中的规则之外,我们还可以在其控制台的在线 Firebase 规则部分中编写安全规则(数据库/存储)。为什么是这样?我感觉这样会重复吗?


这在客户端-服务器架构中很常见。

  • 服务器must验证数据以确保没有无效/损坏的数据写入数据库。

  • 客户端should验证数据,为用户提供最佳体验。

考虑一个例子:假设您有一个旅行网站,用户可以在其中选择旅程的开始和结束日期。常见的验证是结束日期不能早于开始日期。在 Firebase 数据库安全规则中,这可能是:

{
  "journeys": {
    ".validate": "newData.child('startAt').val() > now &&
                  newData.child('endAt').val() > newData.child('startAt').val()"
  }
}

我们在这里做了额外的检查,之前您也不能预订旅行。这已经被简化了很多,但希望能够说明服务器端方面。

在客户端,您通常会显示日历。当用户打开该日历时,您希望确保他们无法选择今天之前的日期。您还需要确保结束日期只能晚于开始日期。如果您曾经使用过未实现最后一点的旅游网站,您就会知道它有多么烦人。恼怒的用户会转向其他网站。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Firebase 和代码中编写规则 的相关文章

随机推荐

  • 如何更改python字符串中最后一个字母的大小写?

    所以我想将字符串中的最后一个字符更改为小写 下面的代码是我用来向后打印字符串的方法 但是列表将最后一个字符保留为大写 我不知道如何解决这个问题 if s 1 x new last index len s 1 for i in range l
  • 插入符中的逻辑回归 - 无截距?

    使用 caret 包在 R 中执行逻辑回归 并尝试强制零截距 使得 x 0 处的概率为 0 5 在其他形式的回归中 似乎您可以使用unegrid关闭截距 但这没有逻辑回归的功能 有任何想法吗 model lt train y 0 x dat
  • 将wpf窗口打印到pdf文件

    我需要从 wpf 窗口构建 pdf 文件 该窗口包含一个带有一些绘图的画布以及一些带有数据的文本框和标签 一位朋友告诉我使用水晶报表 但对我来说似乎不是一个好的解决方案 我想在画布上打印图像并用文本框和标签的数据写入一些行 我需要一个非付费
  • 独立 VS 2010 C++ 程序

    我已经很久没有使用 VS 2010 和 C 了 当我重新开始使用它时 我遇到了去年困扰我的同样的问题 我编译的 exe 运行得不好没有正确的 C 运行时的旧机器 我什至不知道给他们什么链接 我告诉他们安装this他们收到错误消息 该程序无法
  • 如何在 AEM 6.1 中创建系统用户 (rep:SystemUser)?

    在 AEM 6 1 上 我尝试创建一个系统用户 rep SystemUser 谁能帮我 我需要这个系统用户映射到 OSGI 中的一个服务 我想用它来将一些数据写入 aem 内容 我可以在 CRX 中的以下位置看到 系统用户 home use
  • 在 C'# 中以编程方式获取所有 TFS 分支

    我正在尝试以编程方式获取 TFS for Visual Studio 2013 中所有分支的列表 经过一些研究 我发现此博客详细介绍了如何获取分支 显示 TFS 2010 中的所有分支层次结构 我修改了代码 将所有内容存储在列表中 priv
  • MPICH:如何发布_名称以便客户端应用程序可以查找_名称?

    在 Windows 1 4 1p1 中使用 MPICH 学习 MPI 时 我发现了一些示例代码here 最初 当我运行服务器时 我必须复制生成的port name并用它启动客户端 这样 客户端就可以连接到服务器了 我修改它以包括MPI Pu
  • 魔法记录导入(下一步)

    我在标题中添加了下一步 因为这与我之前的问题不同 标题几乎完全相同 我有一个Person entity Person name mappedKeyName FullName email mappedKeyName EmailAddress
  • 每天在两列范围之间的数据框中添加行

    我需要知道按房型划分的预订数量 我有这个 DataFrame 其中包含每个预订的开始和结束及其房间类型 date from date to room type 0 2017 08 07 2017 08 12 SUI 1 2017 08 09
  • 为什么 Xcode 4.3.2 存档时会挂起?

    当我尝试归档构建时 xcode 因彩色旋转死亡之轮而挂起 它曾经工作正常 但我无法再浏览存档 除非我手动删除存档文件 不过 我可以毫无问题地构建一个设备 我手动删除了存档中的所有内容 通过删除实际的存档文件 并且存档 组织器窗格显示正常 因
  • 提供的注册令牌未注册

    我正在尝试通过 Google 云功能发送 iOS 推送通知 但它返回错误The provided registration token is not registered 但我已经通过调试我的应用程序进行了检查 并且 FCM 注册令牌是正确
  • MySQL:选择前n个最大值?

    我对需要返回特定列上具有最大值的前 N 行的查询感到非常困惑 例如 如果行N 1 N N 1具有相同的值 我必须返回吗just top N or top N 1 rows 如果你这样做 select from t order by valu
  • 渲染透明外壳

    假设我正在渲染神奇女侠驾驶她的隐形喷气机 射流由多个网格组成 大部分是透明的 在透明网格重叠的地方 它变得更加不透明 我不想有这种重叠 这样透明部分仍然有阴影 但材质会丢弃其他片段后面的透明片段 就好像神奇女侠坐在透明的外壳内一样 也许一个
  • 下载并使用现代 CMake 构建 Lua

    让我们尝试通过 cmake 构建 lua 动机 cmake 通过 CLion 等 IDE 获得更多关注和支持or甚至视觉 Studio 2017 及更新版本 如果您想提供独立于平台的开源并促进整个构建过程 那么这非常有用 现在的问题是创建一
  • 如何在 Angular 中定义枚举类型以不违反 tslint typedef 规则

    为了能够在模板中使用枚举 我们在 ts 文件中编写以下代码 在工作流程Progress ts中 export enum WorkflowProgress cancelled 0 inProgress done 在组件 ts中 export
  • python中numpy多维数组的非相邻切片

    我有一个多维数组 a a np random uniform 1 10 2 4 2 3 10 10 对于维度 4 6 我有 3 个列表 其中包含用于切片数组 a 的该维度的索引 dim4 0 2 dim5 3 5 9 dim6 1 2 7
  • 打印所有对 n 个整数求和的方法,使它们的总和达到给定的和。

    我正在尝试提出一种算法 该算法将打印出对 N 个整数求和的所有可能方法 以便它们总计达到给定值 例子 打印所有对 4 个整数求和的方法 使它们的总和为 5 结果应该是这样的 5 0 0 0 4 1 0 0 3 2 0 0 3 1 1 0 2
  • ANDROID - ExpandableListView

    我试图弄清楚如何构建一个包含 许多 的视图 PARENT1 可勾选 可扩展 子级 1 单选按钮 子级 2 单选按钮 PARENT2 可勾选 可扩展 儿童 1 可勾选 儿童2 可勾选 要点是父级必须是可检查的 并且子级必须更改图标 有人可以指
  • @JsonCreator 和 mixin 通过模块不适用于第 3 方类

    我正在尝试反序列化 java net HttpCookie 它没有默认的无参数构造函数 并且得到 org codehaus jackson map JsonMappingException 找不到类型 简单类型 类 java net Htt
  • 在 Firebase 和代码中编写规则

    Firebase 建议除了代码 swift java 等 中的规则之外 我们还可以在其控制台的在线 Firebase 规则部分中编写安全规则 数据库 存储 为什么是这样 我感觉这样会重复吗 这在客户端 服务器架构中很常见 服务器must验证