在我的django服务器中,我正在使用firebase-admin发送fcm通知,并且还通过我的服务器创建了一些文档。每当我尝试在服务器中发送通知时,都会出现错误 “ firebase_admin.messaging.ApiCallError:呼叫者没有权限”,
我认为这是由于我的Firestore安全规则所致。这是我当前在firestore中的安全规则。有没有办法检查我的请求是否来自管理员并且安全?
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if isSignedIn() && emailVerified();
}
match /user/{userId} {
allow read: if isSignedIn() && emailVerified();
allow write: if isSignedIn();
}
function isSignedIn() {
return request.auth != null;
}
function emailVerified() {
return request.auth.token.email_verified
}
function isOwner(userId) {
return request.auth.uid == userId;
}
}
}
答案 0 :(得分:0)
Firebase Admin SDK以管理特权运行,这意味着它们绕过了数据库的服务器端安全规则。
您的错误来自firebase_admin.messaging
,这是对Firebase Cloud Messaging的调用。该呼叫不会受到您的Firestore安全规则的任何影响。
从错误消息中,很可能是您没有将FCM服务器令牌正确传递到呼叫中。