我正在遍历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应该具有一个documentID
属性
返回快照文档的ID。
我在做什么错了?
答案 0 :(得分:1)
Go文档位于godoc.org上。
在您的行doc, err := iter.Next()
中,您得到一个*DocumentSnapshot
。它具有一个名为*DocumentRef
的字段Ref
。根据文档,其字段ID
为:
// The ID of the document: the last component of the resource path.
ID string
因此,要访问代码中的ID,您可能需要使用
doc.Ref.ID