如何获取 Firestore 文档的 ID?

我正在 Firestore 中迭代用户文档,但无法看到当前正在阅读的文档的 ID。


  package main


  import (

    "context"

    firebase "firebase.google.com/go"

    "fmt"

    "google.golang.org/api/iterator"

    "google.golang.org/api/option"

    "log"

  )


   ctx := context.Background()

   sa := option.WithCredentialsFile("cert.json")

   app, err := firebase.NewApp(ctx, nil, sa)

   client, err := app.Firestore(ctx)


   iter := client.Collection("users").Documents(ctx)

   for {

     doc, err := iter.Next()

     if err == iterator.Done {

       break

     }

     if err != nil {

       fmt.Println("Error:", err)

     }


    userDoc := doc.Data()

    var customer_id string

    fmt.Println("user object ID: ", userDoc["mobile_number"])

    // ^ Works


    fmt.Println("user object ID: ", doc.documentID)

    // ^ This gives me this error "❯ doc.documentID undefined 

    // (type *"cloud.google.com/go/firestore".DocumentSnapshot

    // has no field or method documentID)"

据我从文档中读到, DocumentSnapshot 应该有一个documentID返回快照文档 ID 的属性。


我究竟做错了什么?


幕布斯7119047
浏览 97回答 1
1回答

手掌心

Go 文档位于godoc.org上。在你的行中doc, err := iter.Next()你会得到一个*DocumentSnapshot. 它有一个名为Refwhich is a 的字段*DocumentRef。ID根据文档,它的字段是:// The ID of the document: the last component of the resource path. ID  string因此,要访问代码中的 ID,您可能需要使用doc.Ref.ID
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go