有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我希望将用户数据作为管理文档的子集合存储在CloudFireStore中

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

Database snapshot

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

声明:

FirebaseAuth auth;
String userId;
FirebaseFirestore firestore; 

正在初始化和获取uid:

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

正在从文档传递用户标识:

 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>()
                                    {...}

共 (1) 个答案

  1. # 1 楼答案

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