gpt4 book ai didi

json - 如何使用匿名身份验证确保 Firebase 数据库结构?

转载 作者:行者123 更新时间:2023-12-04 03:18:13 24 4
gpt4 key购买 nike

我有一个使用 Firebase 的公共(public)输入类型的应用程序,具有匿名身份验证。用户数据用于在 map 上创建点。每个匿名用户只能通过安全规则编辑与其身份验证 ID 匹配的节点内的数据。

但是,我的应用程序依赖于某种数据库结构。由于数据库 URL 是客户端可读的,我如何使用匿名身份验证来确保我的数据库结构/完整性?

我认为安全和验证规则是可能的,但我不确定。也许拒绝在节点中创建子节点?这对于确保遵循架构是必要的。

每个 auth 节点可以有很多关键节点,但我想限制这个 Firebase 端。并且每个关键节点都必须遵循下面的模式(这样我就可以轻松地拉出 geojson)。以下是我当前的设置 - 想知道缺少什么吗?

"features" : {
"5AGxfaK2q8hjJsmsO3PUxUs09Sz1" : {
"-KS3R4sWPdcDkrxyIFX6" : {
"geometry" : {
"coordinates" : [ -81.88247680664062, 38.884619201291905 ],
"type" : "Point"
},
"properties" : {
"color" : "#2be",
"title" : ""
},
"type" : "Feature"
},

firebase rules

最佳答案

身份验证和数据库模式是完全不同的主题。您通过在安全文档中结合使用 .write.validate 规则来确保数据库模式,而不是通过与您的身份验证提供程序(即匿名身份验证)有关的任何事情。

这在我们的 database security guide 中有详细描述。 .

快速总结:

  • hasChildren:指定必填字段
  • newData:指正在写入的数据
  • data:指数据库中已有的数据
  • .validate:使用 newData.isString()newData.val() == data.val() + 1

请记住,.validate 规则仅针对非空值运行。因此,如果你想尝试像 !data.exists() 这样的东西(即你只能写入此路径一次,以后不能修改它)或 newData.exists()(即您不能删除此数据)然后您需要在 .write 规则中指定这些数据。

有关详细信息,请参阅指南。

关于json - 如何使用匿名身份验证确保 Firebase 数据库结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39713591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com