ios - Firebase 删除的用户能够创建文档,为什么?
问题描述
我有一个 iOS 应用程序,它通过检查来检查用户是否已经登录Auth.auth().currentUser
。如果这返回非空值,则应用程序“自动”将用户登录到应用程序。
如果我使用 Firebase 管理工具删除用户,iOS 应用程序将不知道删除。它只会检查是否Auth.auth().currentUser
存在,如果存在,它会“自动”登录。然而,发生的情况是,尽管删除了用户(匿名用户),但用户仍能够在数据库中创建文档。
我有安全规则来防止这种情况:
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
match /{document=**} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
}
一个不存在的用户怎么可能拥有request.auth != null
?该用户不存在于“身份验证”选项卡中。
果然,如果我重新加载用户它会给出一个错误:
Auth.auth().currentUser.reload { error in }
没有与此标识符对应的用户记录。该用户可能已被删除。
解决方案
推荐阅读
- sql - 问题格式化到人类时间
- html - Flex-wrap 仅将一件物品包装在容器中
- google-apps-script - 用于复制文本的 Google Apps 脚本
- apache-kafka - 通过 Kafka 模板发送消息的异常处理
- ios - 我怎么知道标签何时被切换?
- git - How to log out of my old git account in the comand line for mac
- c - 如何修复“忽略返回值”错误?
- c++ - 如何在编译时获取指向非静态数据成员的指针的对象类型?
- c# - 如何从以编程方式生成的 SSIS 包中获取 GraphLayout XML
- c - 如何防止 Atmel Studio gcc 6.3.1 将 4 字节 memcmp() 优化为 4 字节直接比较?