更换Firestore数据库后应用登录失败问题排查
问题分析与解决方案
登录报错的核心原因
Firebase Auth和Firestore是两个完全独立的服务,你克隆的只是Firestore数据库,Firebase Auth的用户数据并没有被复制,所以新环境的Auth系统里没有任何用户,用原账号登录自然会提示“用户不存在”。
移除认证功能的代码调整
完全可以移除AngularFireAuth,改用AngularFirestore直接操作数据,具体要做这些调整:
- 删除所有和
AngularFireAuth相关的代码:包括导入语句、组件/服务中的注入,以及signInWithEmailAndPassword、authState监听这类Auth相关调用。 - 替换登录逻辑:原来通过Auth验证用户身份的流程,要改成直接从Firestore的用户集合中查询匹配的记录(比如按邮箱、用户名查询),以此来确认用户身份。
- 调整数据关联逻辑:如果原来的业务是用Auth的
uid关联Firestore数据,现在要换成用户集合里的唯一标识(比如自定义的用户ID、邮箱)来关联数据。 - 修改Firestore安全规则:原来的规则如果依赖
request.auth != null这类Auth校验,要改成允许对应数据的访问权限(比如公开读/写,或者自定义的验证逻辑),否则会触发权限错误。
内容的提问来源于stack exchange,提问作者Daniel Fabre
相关产品推荐
相关产品推荐

