在 Firestore 安全规则中,request.resource.data() 是否考虑了第一次写入?
In Firestore security rules, does doing request.resource.data() account for first time writes?
match /databases/{database}/documents
{
match /users/{theuser=**}
{
match /prescriptions/{prescriptions}
{
allow read, write: if
(request.resource.data.TheClinicianEmail == request.auth.token.email);
}
}
}
在这个例子中,我正在检查文档 'prescription' 的“TheClinicianEmail”字段。第一次创建这个文档的时候,request.resource.data会不会只是我传入的数据,因为还没有文档存在?
await db.collection('users').doc(Theemail).collection('Prescription').add({
TheClinicianEmail: Theemail,
})
我在这里添加字段 -> TheClinicianEmail,当文档第一次创建时。
request.resource.data
始终 客户端(请求)传递的数据。
resource.data
是 Firestore 中已有的数据(如果有的话)。
match /databases/{database}/documents
{
match /users/{theuser=**}
{
match /prescriptions/{prescriptions}
{
allow read, write: if
(request.resource.data.TheClinicianEmail == request.auth.token.email);
}
}
}
在这个例子中,我正在检查文档 'prescription' 的“TheClinicianEmail”字段。第一次创建这个文档的时候,request.resource.data会不会只是我传入的数据,因为还没有文档存在?
await db.collection('users').doc(Theemail).collection('Prescription').add({
TheClinicianEmail: Theemail,
})
我在这里添加字段 -> TheClinicianEmail,当文档第一次创建时。
request.resource.data
始终 客户端(请求)传递的数据。
resource.data
是 Firestore 中已有的数据(如果有的话)。