dsnap.Data() returns nil 如果文档不存在

dsnap.Data() returns nil if the document does not exist

我已经编写了一个控制器 GetUser 以根据我输入查询的 id 从数据库 (Firestore) 获取特定用户。如果用户不在数据库中,那么它应该给出 "User not found" 的消息。但是除了这条消息,我还得到了 nil 关键字作为响应。

我得到的回应:

{
    "message": "User not found"
}null

当我将鼠标悬停在 dsnap.Data() 上时,我得到的信息是

(firestore.DocumentSnapshot).Data on pkg.go.dev

Data returns the DocumentSnapshot's fields as a map. It is equivalent to

var m map[string]interface{}
d.DataTo(&m)
except that it returns nil if the document does not exist.

控制器:

func GetUser(c *gin.Context) {
    paramID := c.Params.ByName("id")
    ........
    ........
    ........
    dsnap, err := client.Collection("users").Doc(paramID).Get(ctx)
    if err != nil {
        fmt.Print(err)
        c.IndentedJSON(http.StatusNotFound, gin.H{
            "message": "User not found",
        })
    }
    m := dsnap.Data()
    c.IndentedJSON(http.StatusNotFound, gin.H(m))

}

Firestore 参考 link:https://pkg.go.dev/cloud.google.com/go/firestore@v1.6.1#DocumentSnapshot.Data

你们能告诉我如何从回复中删除 nil 吗? 谢谢。

此问题现已解决。我在 User not found 回复后写 "return"