Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 我们是否允许用户使用firestore安全规则仅使用特定字段创建数据?_Firebase_Google Cloud Firestore_Firebase Security - Fatal编程技术网

Firebase 我们是否允许用户使用firestore安全规则仅使用特定字段创建数据?

Firebase 我们是否允许用户使用firestore安全规则仅使用特定字段创建数据?,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,提交数据时,我希望确保我的客户机不能持久化随机字段 同时,我想让我的应用程序尽可能简单,我正在尝试只使用firestore规则和/或索引(即不使用某些服务器端express)。可能吗 我知道如何检查字段的存在和类型: rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /example/{exampleId} { allow create

提交数据时,我希望确保我的客户机不能持久化随机字段

同时,我想让我的应用程序尽可能简单,我正在尝试只使用firestore规则和/或索引(即不使用某些服务器端express)。可能吗

我知道如何检查字段的存在和类型:

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /example/{exampleId} {
      allow create: if "fieldOK" in request.resource.data &&
        request.resource.data.fieldOK is string
    }
  }
}

但是我不知道当你不能在规则中进行循环时,如何阻止创建随机场,如“fieldBS”。

是的,你可以使用
hasAll
hasOnly
确保对象只有一定范围的键

request.resource.data.keys().hasAll(['admin']);
request.resource.data.keys().hasOnly(['admin']);
您可以在
Map
(键/值对)样式数据的任意嵌套级别上使用此选项

对于类似这样的问题,这是一个很好的资源


在只检查支持的密钥范围后,仍然需要检查每个字段的完整性。

非常感谢!如果能在文档中提到它,那就太好了,因为参考资料对用户不太友好,甚至完整的示例(比如评级应用程序)也不使用这个功能。不,我同意,这真的非常难。曾经有一个很棒的网站,里面有关于这类事情的备忘单,但不幸的是我找不到。如果我再次偶然发现它,我会在这里通知你。