我可以强制 Firestore 文档具有特定类型或数据模型(即静态类型)吗?

2024-05-24

例如,如果我有一个如下所示的 Firestore 文档:

{
  threadId: 'abc',
  authorId: 'abc',
  content: 'blah blah blahh'
}

如果我不小心编写了一些添加另一个字段的代码,我可以让 Firebase 抛出错误吗,如下所示:

{
  accident: 'OOPS! THIS FIELD SHOULD NOT BE HERE',
  threadId: 'abc',
  authorId: 'abc',
  content: 'blah blah blahh'
}

就像每个文档形状的静态类型一样,并从 Firestore 端强制执行。那可能吗?


如果您从客户端 SDK 写入数据,则可以使用安全规则来验证数据。有关这方面的一些示例,请参阅 Firestore 文档:验证安全规则中的数据 https://firebase.google.com/docs/firestore/security/rules-conditions#data_validation.

例如,要测试文档是否仅包含您提到的三个字段,您可以执行以下操作:

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

我可以强制 Firestore 文档具有特定类型或数据模型(即静态类型)吗? 的相关文章

  • Angular Firebase 使用电话号码登录

    我是这个网站的新手 所以如果我犯了错误 请纠正我 我会修复它 并原谅我 我也是 Angular 4 环境的新手 Firebase 有一个新选项 signInWithPhoneNumber 我想在我的新应用程序上实现它 该方法需要参数 sig
  • 如何禁用 Firebase 电话身份验证 reCAPTCHA? (网络/反应)

    我正在构建一个 React Firebase 应用程序并使用 Firebase 的 PhoneAuthProvider 进行身份验证 在开发过程中 需要进行大量的登录和注销来测试身份验证流程 私有路由 登录重定向等 每次我需要登录时 都会向
  • 从谷歌云存储桶加载数据

    这是一个从谷歌云存储桶加载数据的函数 action dataset folder path action data set zip path actions zip url http console cloud google com sto
  • 调试firebase云函数

    如何使用 Visual Studio 代码进行调试firebase 数据库 trigger功能 我尝试了模拟器 但是当我调用它时出现错误 functions debug myMethod C functions functions gt f
  • 无法将项目部署到 firebase

    我尝试将我的应用程序部署到 firebase 但失败了 firebase 部署 project af2test 您的 CLI 身份验证需要更新才能利用 新功能 请运行 firebase login reauth 错误 无法授权访问项目 af
  • 在 flutter firebase 中登录时出现错误

    在使用错误的电子邮件或密码登录时 我希望获得我输入的小吃栏 但我的控制台中出现错误 error 初始任务操作失败 RecaptchaAction action signInWithPassword 有例外 内部 发生错误 无效的登录凭证 验
  • 如何使用多重身份验证 - firebase?

    我有一个注册屏幕 其中包含 用户名 电子邮件 电话号码 密码 在本例中 我使用电话号码身份验证来验证号码 因此在用户验证他的号码后 我将他的数据保存到 firebase DB 中 所以在那之后 我将下摆导航到登录屏幕 应该包含电子邮件 密码
  • Google Cloud Functions 中的 Python

    Google Cloud Functions 可以使用 sklearn pandas 等包处理 python 吗 如果是这样 有人可以向我指出如何做到这一点的资源方向 我已经搜索了一段时间 似乎这是不可能的 我找到的只是将基本 python
  • Firebase 函数,admin.database().ref(...).get() 不是函数

    我正在开发一个 Android 应用程序 并使用 firebase 作为它的后端 我正在尝试让通知系统正常工作 该系统依赖于监听数据库中的更改 但遇到问题 因为我收到以下错误 想知道是否有人能够提供帮助 可以提供任何额外的代码 Fireba
  • 当请求 Google 驱动器范围权限时,会出现无限加载对话框

    我想将 Google Drive 集成到我的应用程序中 以在其中存储用户的应用程序数据 我尝试过的 我已经实现了 Google 登录谷歌开发文档 https developers google com identity sign in an
  • 没有为类型“Object”定义运算符“[]”。尝试定义运算符“[]”

    我的代码在下面给出了我在这一行中从 firebase 访问用户名时遇到的问题的错误 snapshot data username 它给出了上面提到的错误 我知道访问地图数据的唯一方法是这个 FutureBuilder future Fire
  • 如何使用 aws-cli 访问 Google Cloud Storage 存储桶

    我可以访问 aws 和 Google Cloud Platform 是否可以执行以下操作 使用 aws cli 列出 Google Cloud Storage 存储桶 使用 aws cli 将 CSV 文件放入 Google Cloud S
  • 如何知道哪个用户正在尝试登录?

    用户是使用电子邮件和密码创建的 这就是我进行注册的方式 mSignup setOnClickListener new View OnClickListener Override public void onClick View v mEma
  • 在执行下一个函数之前等待 for 循环完成

    我需要等待 for 循环完成才能开始使用 experimentArray 在继续使用实验数组之前 我如何等待完成 我尝试过承诺 异步等待等 let experimentArray for i 0 i lt this state gameRo
  • Firebase Function 从其他文件导入函数 - javascript

    我正在使用 javascript 构建 firebase 函数 现在我有很多内部调用函数 我计划将这些函数移动到不同的文件中 以避免 index js 变得非常混乱 下面是当前的文件结构 functions index js interna
  • 如何在列表视图中滚动添加更多项目?

    这里的代码当前加载了存储在 Firestore 集合中的所有啤酒 我如何最初只加载 10 个啤酒 然后当用户向下滚动并到达 10 个啤酒列表的末尾时 它应该加载最后一次酿造后还有 10 杯 并且酿造应根据时间戳进行排序 class Brew
  • 在不成为项目用户的情况下在 BigQuery 中运行查询

    共享数据集以便其他人可以对数据集中的表运行查询的唯一方法似乎是使该人成为一个项目user See 权限 https cloud google com bigquery docs access control predefined iam r
  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • Google Cloud - 谷歌云功能的出口 IP / NAT / 代理

    我正在为我的公司构建一个数据摄取层 其中有很多不同的集成点 其余 api 某些 API 要求您从列入白名单的 IP 进行连接 我真的很想使用谷歌云功能 pubsub 来构建摄取逻辑 因为它具有可扩展性并降低了成本 但问题是谷歌云功能总是从随
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用

随机推荐