Firestore中一步调用add时如何获取id?

2024-06-28

我知道获取 id:

String cityId = db.collection("cities").document().getId();
db.collection("cities").document(cityId).set(city);

但更容易:

db.collection("cities").add(city);

但是如何获取id呢?它不起作用.add(city).getId()。文档中没有信息。


Firestore中一步调用add时如何获取id?

您无法像使用document()称呼。要解决这个问题,您应该添加一个完整的侦听器。尝试这个:

db.collection("cities").add(city).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
    @Override
    public void onComplete(@NonNull Task<DocumentReference> task) {
        if (task.isSuccessful()) {
            DocumentReference document = task.getResult();
            if (document != null) {
                String id = document.getId(); //Do what you need to do with the document id
                Log.d(TAG, id);
            }
        }
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firestore中一步调用add时如何获取id? 的相关文章

随机推荐

  • 捆绑包安装不使用 rbenv 本地 Ruby 版本

    我正在尝试使用捆绑器为新的 Rails 项目安装 gem bundle install path 我已使用 rbenv 将本地 Ruby 版本设置为 2 3 1 但捆绑程序仍在使用我的系统 Ruby 2 0 0 rbenv local 2
  • 为什么存在私有静态方法,这些方法不在任何静态上下文中被调用?

    由于静态内容是在类加载时加载的 因此甚至可以在对象创建之前使用ClassName member 但如果静态方法是私有的 那么你只能做这件事ClassName method 内部类也可以直接访问method 不附加类名 因此制作了一个priv
  • 检测Perl字符串是否可打印

    我正在尝试在 Perl 中打印递归数据结构以进行调试 哈希数组的哈希的哈希 诸如此类的东西 它的一些基本数据元素是可打印的字符串 所以我正在打印它们 不幸的是 一些基本数据元素是二进制的 想想图像文件中的内容 他们用乱码搞砸了我的调试输出
  • 需要有关如何从 .docx/.doc 文件中提取数据然后将数据提取到 SQL Server 中的建议

    我想为我的项目开发一个应用程序 它将加载过去一年的考试 练习卷 word文件 相应地检测各个部分 提取该部分中的问题和图像 然后将问题和图像存储到数据库 试卷预览位于本文底部 因此 我需要一些关于如何从 Word 文件中提取数据 然后将它们
  • brew 更改包安装位置

    如何更改 Homebrew 将安装包的位置 这可能吗 我尝试手动将安装的文件夹移动到 usr local Cellar 但该位置的动态链接是 硬连线 的 不 这是不可能的 您可以更改整个 Homebrew 安装的位置 https githu
  • 使用 CentOS 在 AWS GPU 实例上运行 OpenGL

    我需要使用 CentOS 在 AWS EC2 GPU 实例上执行一些离屏渲染程序 然而 虽然我发现 Ubuntu 很容易安装 但我无法让 CentOS 正常工作 目标是在 EC2 GPU 实例上运行一些基本的实用程序 测试工具 没有屏幕或
  • 使用 .Net 停止网络计算机上的进程

    在我的项目中 我将这样做 餐厅里有一台服务器 还有一些运行 Windows XP 的 pos 机 称为 Radiant 系统 服务器上会有一个 exe 这个 exe将停止运行Radiant Poses上的某些进程 Net Remoting
  • 如何在Python中任意旋转、重新排列等pdf页面?

    我有一个 正常 的 input pdf 许多页面的方向和方向都相同 我想创建一个新的 pdf 它可以任意重新排列输入页面 例如 我只需要旋转和缩放 每个输入页面都将作为输出的某个组成部分完整呈现 我不需要摆弄文本 颜色 裁剪等 在伪代码中
  • ISO Mercurial“属性” - 应用于多个变更集的标签,在变更集之后应用

    BRIEF 如何使用同一标签在 Mercurial 中标记多个变更集 可能在同一个分支上 也可能在不同的分支上 例如 类似于标签 表明完整的 QA 测试是否运行 我可以通过编辑文件来创建标签的多个实例 但 hg 工具几乎总是忽略除第一个之外
  • x86指令“call dword ptr ds:[00923030h]”是什么意思? [复制]

    这个问题在这里已经有答案了 下面的 x86 汇编指令有什么作用 call dword ptr ds 00923030h 我怀疑这是一个间接调用 但它到底是如何计算调用的地址的 编辑 已更新 每当你看到一个看起来像这样的内存操作数时ds 0x
  • Android:如何同时同步播放2个媒体文件

    我试图同时播放 2 个音频文件 在本例中为 mp3 以便它们在完全相同的时间开始并彼此同步播放 我的第一次尝试是只使用两个 MediaPlayer 提前准备好它们 然后连续调用每个 MediaPlayer mediaPlayer start
  • Linq where column == (null 引用) 与 column == null 不同

    我在 linq to sql 方面遇到了一个相当奇怪的问题 在下面的示例中 var survey from s in dbContext crmc Surveys where s crmc Retail Trade Id tradeId s
  • Spark 有效地过滤大数据框中存在于小数据框中的条目

    我有一个 Spark 程序 它读取一个相对较大的数据帧 3 2 TB 其中包含 2 列 id name 和另一个相对较小的数据帧 20k 条目 其中包含单个列 id 我想做的是从大数据框中获取 id 和名称 如果它们出现在小数据框中 我想知
  • SSD 上的 MySQL 基准测试:工具和策略

    我目前正在将我的服务器从在硬盘驱动器上运行 MyISAM 切换到在 SSD 上运行 InnoDB 我有一个3 800 000 行 16GB 表作为基准表 我的服务器设置 Ubuntu 64 Nginx MySQL 5 5 我心里有两件事我想
  • 如何只替换部分匹配的子字符串?

    这是一个我还找不到答案的正则表达式问题 Input the current time is
  • Go gin框架CORS

    我正在使用 Go gin 框架gin https github com gin gonic gin func CORSMiddleware gin HandlerFunc return func c gin Context c Writer
  • 如何使用 monocle 修改嵌套映射和 scala 中的另一个字段

    我第一次尝试单片眼镜 这是案例类 case class State mem Map String Int pointer Int 当前的修改 使用标准 scala 我想做 def add1 s State gt s copy mem s m
  • Ubuntu 14.04 中 MongoDB 安装失败

    我按照 MongoDB 官方网站中提到的步骤进行操作 sudo apt key adv keyserver hkp keyserver ubuntu com 80 recv 7F0CEB10 echo deb http repo mongo
  • 使用 sudo 从 Node.js 运行命令

    作为 Node js 新手 我有这个问题 我看到在一些地方提到节点不应该以 root 身份运行 例如this http syskall com dont run node dot js as root 我只是使用节点来设置simpleWeb
  • Firestore中一步调用add时如何获取id?

    我知道获取 id String cityId db collection cities document getId db collection cities document cityId set city 但更容易 db collect