java - 我想将用户数据存储为 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>()
{...}
解决方案
问题是与您在创建管理文档时定义userId
的不对应。name
因此,当您使用此文档参考时:DocumentReference documentReference = firestore.collection("Admin").document(userId).collection("Professor").document(professorname);
创建了一个新文档,因为userId
您的数据库中不存在该文档。确保它userId
对应于name
(数据库中的 id),然后它应该按预期工作。
推荐阅读
- javascript - 在 URL 中设置字符串(Reactjs)
- visual-studio-code - 使用带有 Visual Studio 代码断点的函数框架 python 进行调试
- spring-boot - 使用 Java Faker 引发依赖错误的 Spring Boot
- mysql - 从备份中恢复 MySQL 的脚本
- java - 如何在多个平台上管理 Maven 依赖项?
- firebase-realtime-database - FIREBASE 警告:缺少 appcheck 令牌 (https://xxxxxxxx.firebaseio.com/)
- sql - SQL 选择语句语法问题
- ios - 如何在 Xcode 中为其他国家/地区更改 Info.plist
- kubernetes - 用于 EKS 部署的跨账户 CodePipeline
- java - 启用 GL2.GL_LINE_STIPPLE 翻转我的台词