java - 如何在android Firestore的文档字段中保存文档ID?

标签 java android firebase google-cloud-firestore

我能够将文档保存到 firestore,但我也想将新保存的文档 ID 保存到同一个文档中,我正在尝试下面的示例,但效果不好

 String id = db.collection("user_details").document().getId();

                                Map map = new HashMap<>();
                               map.put("username", username);
                                map.put("email", email);
                                map.put("id", id);




                                UserRef.document(id).set(map).addOnSuccessListener(new OnSuccessListener<Void>() {
                                    @Override
                                    public void onSuccess(Void aVoid) {

                                        //progressbar invisible;
;

                                    }
                                });

最佳答案

每次调用 document() 时,您都会获得一个新的唯一 ID。因此,请确保只调用一次,这样您就只处理一个 ID。

首先获取文档引用:

DocumentReference ref = db.collection("user_details").document();

获取其ID:

String id = ref.getId();

然后编写要发送的数据:

Map map = new HashMap<>();
map.put("username", username);
map.put("email", email);
map.put("id", id);

最后,将该数据放入前面引用的文档中:

ref.set(map)...

关于java - 如何在android Firestore的文档字段中保存文档ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58457043/

相关文章:

java - JDK 11 HttpClient 抛出 "No subject alternative DNS name"错误

java - JDBC:更新表的最佳方法?

android - Android Studio Method Tracer 工具可以跟踪应用程序是否可以启动进程?

android - 如何在Drag-Sort ListView中刷新ListView?

javascript - 是否可以检测 Firebase 快照何时执行?

java - 如何修复 JpaRepository 不保存且存储库为空的错误

java - ANTLRWorks 生成解析器声明抛出但在 java 文件中没有其他内容

android - 在 Android 中每 10 秒使用 AsyncTask 调用 REST 方法

android - Firebase .setCurrentScreen 用于基于 View 的应用

javascript - 尝试使用模拟器测试 Firestore 安全规则时总是出现超时错误