当前位置: 首页 > 知识库问答 >
问题:

在Firestore中添加文档后获取文档id

向修谨
2023-03-14

在我们仔细处理之后。我仍然无法获取自动生成的文档ID。没有“then”选项。我的代码:

var mFirestore = FirebaseFirestore.getInstance()
mFirestore.firestoreSettings = FirebaseFirestoreSettings.Builder().build()

val rls: MutableMap<String, Any> = HashMap()
rls["title"] = "some data"

var pop = mFirestore.collection("Users").document("mic").collection("Rls")
pop.add(rls)

创建后如何获取ID?

共有2个答案

孟乐
2023-03-14

正如这里所解释的,为了让fiRecovery自动生成一个id,您可以使用这样的“add”函数:

// Add a new document with a generated id.
val data = hashMapOf(
        "name" to "Tokyo",
        "country" to "Japan"
)

db.collection("cities")
    .add(data)
    .addOnSuccessListener { documentReference ->
        Log.d(TAG, "DocumentSnapshot written with ID: ${documentReference.id}")
    }
    .addOnFailureListener { e ->
        Log.w(TAG, "Error adding document", e)
    }

然后可以从“documentReference”中检索“addOnSuccessListener”中的id。身份证件

编辑:确保像这样初始化您的firestdb:

// Access a Cloud Firestore instance from your Activity
val db = Firebase.firestore
贲宜春
2023-03-14

您可以执行以下操作:

var docID = mFirestore.collection("Users").document("mic").collection("Rls").document()

上述操作将生成一个随机文档id,然后在添加数据时可以执行以下操作:

var pop = mFirestore.collection("Users").document("mic").collection("Rls").document(docID.id)
pop.set(rls)
 类似资料:
  • 是否有方法获取将文档添加到集合后生成的文档id? 如果我将文档添加到代表社交媒体软件中“帖子”的集合中,我想获取该文档ID并将其用作不同集合中另一个文档中的字段。 如果我无法获取添加文档后生成的文档Id,我是否应该计算一个随机字符串,并在创建文档时提供Id?这样我就可以使用与其他文档中的字段相同的字符串了? 快速结构示例:

  • 当用户购买产品并按条支付时,我在自动化工作流程的集成方面有点困难。我正在使用火力还原和云功能。 工作流程 > 用户通过条纹Checkout.js购买产品 付款存储在付款集合中 触发云功能(付款收款的onWrite) TODO:将文档添加到集合“用户”文档中的“采购”集合 费用支付 除了第4步和第5步之外,我已经实现了这个工作流,因为我不知道如何在云函数中从Firestore检索和添加DocRef(

  • 我是消防队的新手。消防队的文件说... 重要提示:与Firebase实时数据库中的“推送ID”不同,Cloud Firestore自动生成的ID不提供任何自动排序。如果希望能够按创建日期对文档进行排序,则应将时间戳存储为文档中的字段。

  • 我使用的是,我希望当我获得一个包含引用字段的文档时,将引用字段作为一个文档接收,而不是作为对该文档的引用... 我有一个用户集合和一个类集合(在学校),每个类都包含一个对用户(这门课的学生)的引用列表。当我使用(通过引用获取类)时,它返回一个包含(用户的)列表的对象,因此我需要再调用大约20次,以便将用户作为对象获取,而不是作为对它们的引用获取。 我希望能够调用一次,它将为我带来作为文档的所有引用

  • 我有一个文档集合,其中文档的id是用户id。让我们称这些为用户文档。 每个“用户文档”包含聊天消息的子集合。但并不是所有的“用户文档”都包含任何字段(数据,而不是子集合)。 我不想返回集合中没有任何字段但有子集合的所有文档,但我觉得这是不可能的? 此代码只返回包含字段的文档,而不是只有子集合的文档?有没有办法全部返回? 如何获取集合中所有文档id的列表?空的和非空的都有?或者,如果我不能访问没有字

  • 是否有一种方法来获取所有文档,其中数组字段不包含一个或多个值,现在有“数组-包含”,但是否有类似“数组-不包含”的东西?