gpt4 book ai didi

go - 如何使用Go将文档ID插入为字段值Firestore

转载 作者:行者123 更新时间:2023-12-01 20:26:43 24 4
gpt4 key购买 nike

我想在“集合组查询”期间搜索具有特定ID的文档。根据我的阅读,无法直接使用文档ID执行CGQ,因此我打算将文档ID镜像到文档中的id字段中。

我尝试了firestore.DocumentID(请参见下面的代码段),期望它充当代表文档ID的哨兵值(在调用该方法时尚不知道)。我发现firestore.DocumentID实际上是一个具有"__name__"值的const,并且它成为结果文档中id字段的字符串值。

docRef, _, err := colRef.Add(ctx, map[string]interface{}{
"id": firestore.DocumentID, // this does not work
"events": events,
"url": url,
"enabled": true,
"created": firestore.ServerTimestamp,
"modified": firestore.ServerTimestamp,
})

是否可以在原子调用 id方法的同时将文档内的ID写入 Add字段?

如果是这样,那哨兵的值(value)是多少?如果没有,我是否应该执行先创建文档然后又使用 id字段更新文档的事务?

最佳答案

您不能告诉Firestore客户端在写入时插入其新ID。

为了通过一次写入操作将两者都放入数据库,您必须将新的DocumentReference(这是客户端操作)的创建与实际的数据写入分开。

所以两步:

  • 通过调用 DocumentReference 创建新的colRef.NewDoc()
  • 使用 docRef.Set() 将数据(包括ID)写入引用中。
  • 关于go - 如何使用Go将文档ID插入为字段值Firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61207401/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com