java - 有没有办法从 Firestore 访问自动生成文档 ID?
问题描述
我可以知道有什么方法可以使用 Java 访问 Firestore 中的自动生成文档 ID 吗?因为我想通过我自己的 android 应用程序向现有文档添加新字段和数据。我浏览了文档,但没有找到任何解决问题的方法。
问题的详细说明: 我尝试获取每个“事件”文档的自动生成 ID,以便为 Firestore 中的每个“用户”添加/更新新字段“保存事件”。这样 1 个用户就可以在 firestore 中保存许多“事件”。
解决方案
为了使用您要查找的文档 ID,首先,您需要将其存储在一个变量中。当您将文档添加到数据库并使用 document()
方法调用而不传递任何参数时,将生成唯一 ID。要获取该 ID,您应该使用以下代码:
String docId = collRef.document().getId();
collRef.document(docId).set(obj);
其中“collRef”是指向要在其中添加文档的集合的引用,“obj”是要添加到数据库中的对象。
如果需要,您还可以将文档 ID 存储为对象的属性。
获得此 ID 后,您可以执行如下更新:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference collRef = rootRef.collection("collName");
collRef.document(docId).update(map).addOnCompleteListener(/* ... /*);
推荐阅读
- sonarqube - 在使用 SonarQube 期间从我的计算机执行扫描仪时出错
- javascript - Artyom.js 语音上的音频可视化器
- probability - 用代码建模任何概率分布
- javascript - iOS (14.01) 中 Chrome (90.0) 中的事件链不正确
- html - 自定义 Bootstrap Sass 组件
- c++ - 强制 g++/clang++ 使用本地 `libstdc++.so`
- xml - 如何遍历保存的 xml 文件来解析地址?
- python - 将 PubMed 的作者和隶属关系与 Python 匹配
- spring-cloud-config - 在 Spring Cloud 配置服务器中使用不记名令牌设置 bitbucket 访问
- vue.js - 来自 chokidar (D:\) 的错误:错误:EBUSY:资源繁忙或锁定,lstat 'D:\pagefile.sys'