Как вернуть значение индекса имени документа - PullRequest
0 голосов
/ 03 октября 2018

Это вопрос GoLang, Firebase AdminSDK.

Этот пример работает для перебора всех документов в БД FireStore.

Как я могу получить имя документа?

Другими словами: если имя коллекции JohnyCollection, а JohnyCollection имеет 20 названных документов (Document1, Document2).... Document20), как мне получить название документа в коде Голанга?

// =======================================

package main
import (
    "context"
    "fmt"
    "log"
    "firebase.google.com/go"
    "google.golang.org/api/iterator"
    "google.golang.org/api/option"
)
func check(e error) {
    if e != nil {
        panic(e)
    }
}
func main() {
    ctx := context.Background()
    sa := option.WithCredentialsFile("./scai-qit-fb-adminsdk.json")
    app, err := firebase.NewApp(ctx, nil, sa)
    if err != nil {
        log.Fatalf("error initializing app: %v\n", err)
    }
    client, err := app.Firestore(ctx)
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()
    iter := client.Collection("COMPLEX_NONACS").Documents(ctx)
    for {
        doc, err := iter.Next()
        if err == iterator.Done {
            break
        }
        if err != nil {
            log.Fatalf("Failed to iterate: %v", err)
        }
        //This part works.  WIll return a Map of each Document
        fmt.Println("--------------------------/n")
        fmt.Println(doc.Data())

        //  This is the question.  How do I get the INDEX name of the Document?
        //  something like...
        fmt.Println(doc.Index_value_or_something_that_returns_IndexName())

        //  for example...
        // {
        // "ABC":{"line1":"yabba dabba","line2":"dingo dong"},
        // "DEF":{"line1":"hooty tooty","line2":"blah blah"}
        // }
        // How to just get the "ABC"  and "DEF"

    }
}

1 Ответ

0 голосов
/ 03 октября 2018

Вы можете получить идентификатор документа из DocumentSnapshot, сначала просмотрев DocumentRef:

 fmt.Println(doc.Ref.ID)

См. Справочные документы для DocumentSnapshot и DocumentRef.

...