Как я могу получить идентификатор документа Firestore? - PullRequest
0 голосов
/ 01 октября 2019

Я перебираю свои пользовательские документы в Firestore, но я не могу увидеть идентификатор документа, который я сейчас читаю.

  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)"

Насколько я могу читать из документов a DocumentSnapshot должен иметь свойство documentID, которое возвращает идентификатор документа снимка.

Что я делаю не так?

1 Ответ

1 голос
/ 01 октября 2019

Документация Go находится на godoc.org .

В вашей строке doc, err := iter.Next() вы получаете *DocumentSnapshot. У него есть поле с именем Ref, которое является *DocumentRef. Его поле ID, согласно документации:

// The ID of the document: the last component of the resource path.
ID  string

Таким образом, чтобы получить доступ к идентификатору в вашем коде, вам, вероятно, нужно использовать

doc.Ref.ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...