Firebase支持确认存在与评估
request.writeFields.size()
. 没有估计它什么时候能修好。
bug的存在可以通过以下规则来证明:
service cloud.firestore {
match /databases/{database}/documents {
match /cities/{city} {
// This should always evaluate to true, but does not.
allow create: if (request.writeFields.size() == 1) || (request.writeFields.size() != 1);
allow update: if true;
}
}
}
虽然
create
规则的计算结果应始终为true,创建城市的尝试失败,权限被拒绝。看来
request.writeFields
不仅影响它出现的规则,还影响路径的其他规则。对于上面显示的规则,试图更新现有城市也会在拒绝权限时失败。