Firebase Auth创建用户后向Firestore写数据报路径段数奇数错误如何解决
问题原因
Firestore 的数据结构严格遵循 集合→文档→集合→文档 的交替层级规则:
- 奇数段的路径是集合引用,偶数段的路径才是合法的文档引用
你出错的代码firestoreDb.document(uidd).collection("users").add(users)中,直接在根节点调用document(uidd),生成的路径只有uidd这1段,属于奇数段,不满足文档引用的路径要求,因此触发报错。
另外你的数据层级逻辑也颠倒了:常规的用户数据存储方案是先创建顶层users集合,再以用户uid作为文档ID存储单条用户数据,而非先写uid文档再套users集合。
可行解决方案
推荐使用用户uid作为文档ID存入users集合,后续查询、更新用户数据会更方便,替换对应报错代码行即可:
firestoreDb.collection("users").document(uidd).set(users)
如果你确实需要让Firestore自动生成随机文档ID存储用户数据,也可以改成如下写法:
firestoreDb.collection("users").add(users)
注意:你的自定义User类需要添加无参构造方法,否则Firestore序列化数据时会抛出异常
内容的提问来源于stack exchange,提问作者Sniper1999
相关产品推荐
相关产品推荐

