我正在设置一个将 json 写入 golang 中的 firebase 存储桶的函数。该函数GetStorage应该创建一个新的存储实例并从函数中返回它以在函数中使用archiveActive我有一个问题,我无法弄清楚GetStorage函数的返回类型是什么。我收到以下错误return client:cannot use client (variable of type *storage.Client) as *storage.Client value in return statementfunc GetStorage() *storage.Client { ctx := context.Background() config := &firebase.Config{ StorageBucket: "myapp-cloud.appspot.com", } fireBaseApp := push.InitializeAppWithServiceAccount(config) client, err := fireBaseApp.Storage(ctx) if err != nil { log.Fatalln(err) } return client}func GetContext() context.Context { ctx := context.Background() ctx, cancel := context.WithTimeout(ctx, zone.Second*50) defer cancel() return ctx}func archiveActive(jsonData string) { ctx := context.Background() ctx, cancel := context.WithTimeout(ctx, zone.Second*50) defer cancel() client := GetStorage() time := zone.Now().Format("2006-01-02") bucket, err := client.DefaultBucket() if err != nil { log.Fatalln(err) } obj := bucket.Object("dev/archives/active/" + time) ...}但是,按照以下方式进行操作。只要新的存储客户端具有相同的功能就可以了。我只需要帮助将功能分解成更小的部分。func getStorageConfig() *firebase.Config { return &firebase.Config{ StorageBucket: "myapp-cloud.appspot.com", }}func getContext() context.Context { ctx := context.Background() ctx, cancel := context.WithTimeout(ctx, zone.Second*50) defer cancel() return ctx}func archiveActive(jsonData string) { time := zone.Now().Format("2006-01-02") ctx := getContext() client, err := push.InitializeAppWithServiceAccount(getStorageConfig()).Storage(context.Background()) if err != nil { log.Fatalln(err) } bucket, err := client.DefaultBucket() if err != nil { log.Fatalln(err) } obj := bucket.Object("dev/archives/active/" + time) ...}
1 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
Client“firebase.google.com/go/storage” (这是 的返回值fireBaseApp.Storage())和“cloud.google.com/go/storage”(似乎是 的返回值)中有一个结构GetStorage()。这两个包都有名称storage,因此如果您需要同时导入它们,则必须使用导入别名。
如果没有看到所有代码,我不确定,但我认为这可能对你有用:
import firebaseStorage "firebase.google.com/go/storage"
...
func GetStorage() *firebaseStorage.Client {
- 1 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消