如何返回文档索引名称值

这是一个 GoLang,Firebase AdminSDK 问题。


此示例用于循环访问 FireStore 数据库中的所有文档。


我怎样才能得到文档名称?


换句话说:如果集合名称是JohnyCollection,并且JohnyCollection有 20 个名为 ( Document1, Document2.... Document20) 的文档,我如何在 golang 代码中获取文档名称?


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


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"


    }

}


拉风的咖菲猫
浏览 78回答 1
1回答

临摹微笑

DocumentSnapshot您可以通过首先查找 来从 获取文档 ID DocumentRef: fmt.Println(doc.Ref.ID)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go