我正在使用gin框架开发golang应用程序。基本上,它只是从firestore中以json格式获取数据。
它在本地运行得很好,但是当我将其部署到GAE(gcloud应用程序部署)时,部署过程中没有错误,但是当访问该页面时它不起作用,并且在日志中提供了一个错误:“紧急:运行时错误:无效内存地址或nil指针取消引用”
能帮我解决这个令人沮丧的问题吗?
提前谢谢
这是我的转到页面:
软件包列表集合
import (
"fmt"
"log"
"net/http"
"cloud.google.com/go/firestore"
"github.com/gin-gonic/gin"
"google.golang.org/api/iterator"
"google.golang.org/appengine"
)
func main() {
}
//GetListCollections function
func GetListCollections(c *gin.Context) {
var coll []string
ctx := appengine.NewContext(c.Request)
projectID := "XXX"
client, err := firestore.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
defer client.Close()
iter := client.Collection("collection").Documents(ctx)
for {
doc, err := iter.Next()
if err == iterator.Done {
break
}
if err != nil {
fmt.Println("ERROR")
}
coll = append(coll, doc.Data()["Title"].(string))
}
c.JSON(http.StatusOK, gin.H{
"collections": coll,
})
}
答案 0 :(得分:0)
因为没有人知道它发生在哪里?
通过分析您的代码,我唯一能想到的就是
itr
变量为空。
您可能需要更改错误部分的检查并添加Panic,而不是仅打印错误并继续运行
if err != nil {
panic("ERROR")
}