如Firestore文档here中所述,我有这样的安全规则:
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, update, delete: if request.auth.uid == userId;
allow create: if request.auth.uid != null;
}
}
}
此规则在通过客户端库进行身份验证时有效,但在我使用Firebase文档中编写的服务器库时无效
注意:服务器客户端库绕过所有Cloud Firestore安全规则,而是通过Google应用程序默认凭据进行身份验证。如果您使用服务器客户端库或REST或RPC API,请确保为Cloud Firestore设置Cloud Identity和访问管理。
如何将此安全规则复制到服务帐户角色?
答案 0 :(得分:5)
使用Firebase Admin SDK和服务帐户访问Firestore的代码当前不能用于执行安全规则的范围内特定的用户ID。使用Admin SDK进行的所有访问都将绕过安全规则并完全控制数据库。
请注意,这与具有这种功能的实时数据库不同。