我正在尝试设置一个规则,以便只有经过身份验证的用户才能更新,创建,编写和删除其cat文档。我的问题是我无法创建新文档。 当我尝试添加它时,出现错误消息“错误:缺少权限或权限不足。”
奇怪的是,我可以使用此规则删除现有文档。
<form id="subForm" class="js-cm-form" action="https://www.createsend.com/t/subscribeerror?description=" method="post" data-id="A61C50BDC994654B1D79D5719EC1255C09788D1CED7F46D508DAE8944C2CB34BA5EC78954EB81FB5F54AD0716B1F245E696D5CFAF72B819D19DC3B44517">
<p>
<label for="fieldEmail">Email</label>
<br />
<input id="fieldEmail" name="cm-wmpt-wmpt" type="email" class="js-cm-email-input"
required />
</p>
<p>
<button class="js-cm-submit-button" type="submit">Subscribe</button>
</p>
</form>
<script type="text/javascript" src="https://js.createsend1.com/javascript/copypastesubscribeformlogic.js"></script>
答案 0 :(得分:0)
也许您缺少请求,例如request.resource.data.ownerId == resource.auth.uid
在写入数据时,您可能希望将传入数据与现有数据进行比较。在这种情况下,如果您的规则集允许挂起的写入,则request.resource变量将包含文档的将来状态。对于仅修改文档字段子集的更新操作,request.resource变量将在操作之后包含待处理的文档状态。您可以检查request.resource中的字段值,以防止不必要的或不一致的数据更新
https://firebase.google.com/docs/firestore/security/rules-conditions#data_validation