Google cloud firestore Firestore安全规则:request.time“;“对象上未定义”;

Google cloud firestore Firestore安全规则:request.time“;“对象上未定义”;,google-cloud-firestore,firebase-security,Google Cloud Firestore,Firebase Security,我正在尝试创建一个基于的安全规则,如上的示例所示 我的职能是 function isThrottled() { return request.time < resource.data.lastUpdate + duration.value(1, 'm') } 用户名集合是每个用户文档下的子集合(在用户根集合中。每个用户名文档只有一个名为用户名的字段,用户可以进行更新)。这可能对您的情况特别有用,但是我在检查令牌对象上的自定义声明时遇到了相同的错误 在访问字段之前,可以使用中的检查

我正在尝试创建一个基于的安全规则,如上的示例所示

我的职能是

function isThrottled() {
    return request.time < resource.data.lastUpdate + duration.value(1, 'm')
}

用户名
集合是每个
用户
文档下的子集合(在
用户
根集合中。每个
用户名
文档只有一个名为
用户名
的字段,用户可以进行更新)。

这可能对您的情况特别有用,但是我在检查令牌对象上的自定义声明时遇到了相同的错误

在访问字段之前,可以使用中的
检查对象上是否存在该属性。如果未定义代理,此代码将生成错误:

allow write: if request.auth != null && request.auth.token.agent == true;
allow write: if request.auth != null && "agent" in request.auth.token && request.auth.token.agent == true;
如果未定义代理,则此代码可以正常工作:

allow write: if request.auth != null && request.auth.token.agent == true;
allow write: if request.auth != null && "agent" in request.auth.token && request.auth.token.agent == true;

请编辑问题以显示出现此问题的整个最小规则集(不仅仅是一个屏幕截图,请将它们粘贴到问题中)。我更新了问题以显示此特定更新检查的规则