因此,我构建了一个 Flutter 应用程序,它使用 Firebase 进行聊天消息存储,并使用 Firebase Cloud Messaging (FCM) 向登录用户发送消息。在开发过程中,我遇到过一种情况,特定用户不断登录并发送不相关的消息。我可以访问他们的设备令牌。我需要一种方法来阻止该用户登录、阅读消息和发送新消息,而不影响其他用户的访问。我尝试调整 Firestore 安全规则,但这影响了所有设备的登录能力。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null && request.auth.token.device_token != 'f25oOjQLS2mosRuCIUy2VM:APA91bEGHMhGHtKkA8GIQwE9EI96k0oTSzvCcM1qfrcEhMhsOGUw3R_cq7pyP7u3ru5hf9sVAKXbdMYJxJhajTeF0rG_5THBKQlnsx2_kfiDihUSWngQqY2Uf74RzVQDPnycnJYKwqv2';
}
}
}
我想阻止该用户访问我的应用程序。
Firebase 身份验证用户与其使用您的应用的设备的 FCM 令牌之间没有隐式连接。如果您的用例需要这样的连接,您必须自己关联它们。
例如,您可以将 FCM 令牌作为自定义声明添加到用户的身份验证配置文件中,如有关使用自定义声明和安全规则控制访问的文档中所示。