Firebase 如何限制用户可以在firestore角色中创建的文档数量
我尝试使用resource.size,但它不起作用我的规则是这样的Firebase 如何限制用户可以在firestore角色中创建的文档数量,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我尝试使用resource.size,但它不起作用我的规则是这样的 allow create: if request.resource.data.uid == request.auth.uid && request.resource.data.name is string && request.resource.data.phoneNumber is number && request.resou
allow create: if request.resource.data.uid == request.auth.uid &&
request.resource.data.name is string
&& request.resource.data.phoneNumber is number
&& request.resource.data.age is number
&& request.resource.data.gander == 'Male'||request.resource.data.gander == 'Female'
&& resource.size() <= 12;
允许创建:if request.resource.data.uid==request.auth.uid&&
request.resource.data.name是字符串
&&request.resource.data.phoneNumber是数字
&&request.resource.data.age是数字
&&request.resource.data.gander==“男性”| | request.resource.data.gander==“女性”
&&resource.size()资源以及request.resource指向文档,而不是集合。
虽然可以对文档路径执行get,但不能对集合执行get
因此,您需要将每个用户创建的患者计数作为一个文档进行维护,例如在/users/uid add字段patientCount中。然后,您可以在安全规则中检查此字段:
function canCreate(uid) {
var userDoc = get(/databases/$(database)/documents/users/uid);
return userDoc.data.patientCount < 12;
}
allow create: if canCreate(request.auth.uid);
函数canCreate(uid){
var userDoc=get(/databases/$(database)/documents/users/uid);
返回userDoc.data.patientCount<12;
}
允许创建:如果可以创建(request.auth.uid);
为了维护patientCount,我在中详细介绍了多种方法