【发布时间】:2019-08-26 18:29:32
【问题描述】:
我无法使用 Firestore 安全规则限制创建的文档中的字段数。 https://firebase.google.com/docs/firestore/security/rules-structure
我的用户文档中有 7 个字段。我想将任何文档 CREATE 尝试限制为我期望的字段数。我已将数字设置为 100,这显然不是我发送给故意造成失败的数字。我预计 100 会失败,但事实并非如此。
match /users/{uid} {
// Applies to writes to nonexistent documents
allow create: if request.resource.data.size() == 100;
}
我还尝试了以下方法,将 size 属性直接放在资源对象上,但没有成功。
允许创建:如果 request.resource.size() == 100;
这是尝试创建操作的代码;
const DEFAULT_systemRole = 'User';
const DEFAULT_disabled = false;
// creates up a static sentinel value to be set on the Firestore server
var serverTimestamp = admin.firestore.FieldValue.serverTimestamp()
admin.firestore().collection('users').doc(req.body.uid).set({
// sent from client
usernameSlug: req.body.usernameSlug,
username: req.body.username,
email: req.body.email,
// set only here on server
systemRole: DEFAULT_systemRole,
disabled: DEFAULT_disabled,
dateModified: serverTimestamp,
dateCreated: serverTimestamp,
}).then(function() {
console.log("Successfully created FireStore user");
}).catch(function(error) {
console.log("Error creating user:", error);
throw(error)
})
【问题讨论】:
-
请将问题编辑为如何编写文档的代码。不确定您的规则是否真的适用于您正在执行的写入,因为我们不知道该写入的真正含义。
标签: node.js google-cloud-firestore firebase-security