我在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)"
据我所知,read from the docs的DocumentSnapshot应该有一个返回快照文档ID的documentID
属性。
我做错了什么?
发布于 2019-10-01 15:46:12
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
因此,要在代码中访问该ID,可能需要使用
doc.Ref.ID
https://stackoverflow.com/questions/58187520
复制