首页 > 解决方案 > 我想将用户数据存储为 Cloud Firestore 中管理文档的子集合

问题描述

注册管理活动将其详细信息存储在 ADMIN 集合文档(管理员名称)中,但是当我使用 uid 将教授详细信息(通过管理门户)作为子集合添加到管理文档时,它会生成一个名为 uid 的新文档。

数据库快照

如何将用户/教授的详细信息作为子集合存储在当前管理文档中?请帮助我谢谢。

宣言:

FirebaseAuth auth;
String userId;
FirebaseFirestore firestore; 

初始化和获取 uid:

firestore = FirebaseFirestore.getInstance();
auth = FirebaseAuth.getInstance();
userId = auth.getCurrentUser().getUid();

从 Document 传递 userId:

 DocumentReference documentReference =  firestore.collection("Admin").document(userId).collection("Professor").document(professorname);
                                    Map<String, String> Professor = new HashMap<>();
                                    Professor.put("Name", professorname);
                                    Professor.put("Email", email);
                                    Professor.put("Phone", phone);
                                    Professor.put("Desgination",desig);
                                    Professor.put("Department",dept);
                                    documentReference.set(Professor).addOnSuccessListener(new OnSuccessListener<Void>()
                                    {...}

标签: javaandroidfirebasegoogle-cloud-firestore

解决方案


问题是与您在创建管理文档时定义userId的不对应。name因此,当您使用此文档参考时:DocumentReference documentReference = firestore.collection("Admin").document(userId).collection("Professor").document(professorname);创建了一个新文档,因为userId您的数据库中不存在该文档。确保它userId对应于name(数据库中的 id),然后它应该按预期工作。


推荐阅读