如何验证 Google Firebase 管理员 SDK 凭据是否正确

使用以下代码初始化应用程序时,有什么方法可以验证 Firebase Admin SDK Credentials 是否正确?


ctx := context.Background()

opt := option.WithCredentialsFile("path/to/firebase-admin-sdk-cred.json")

app, err := firebase.NewApp(ctx, nil, opt)

if err != nil {

    return nil, err

}

因为当我试图故意输入错误的凭据时,我似乎没有收到任何错误。我检查了firebase.NewApp()的实现,但似乎只有在没有配置时才会抛出错误。下面是firebase.NewApp()的代码


func NewApp(ctx context.Context, config *Config, opts ...option.ClientOption) (*App, error) {

o := []option.ClientOption{option.WithScopes(internal.FirebaseScopes...)}

o = append(o, opts...)

if config == nil {

    var err error

    if config, err = getConfigDefaults(); err != nil {

        return nil, err

    }

}


pid := getProjectID(ctx, config, o...)

ao := defaultAuthOverrides

if config.AuthOverride != nil {

    ao = *config.AuthOverride

}


return &App{

    authOverride:     ao,

    dbURL:            config.DatabaseURL,

    projectID:        pid,

    serviceAccountID: config.ServiceAccountID,

    storageBucket:    config.StorageBucket,

    opts:             o,

}, nil 

}

所以有没有办法在 Firebase Admin(app) 实例的初始化过程中检查凭据是否有效,因为它似乎捕获错误不是这里的解决方案?



慕容708150
浏览 191回答 2
2回答

慕桂英4014372

我认为答案在文档中:某些用例要求您同时创建多个应用程序。例如,您可能希望从一个 Firebase 项目的实时数据库中读取数据,并为另一个项目创建自定义令牌。或者您可能希望使用不同的凭据对两个应用程序进行身份验证。Firebase SDK 允许您同时创建多个应用程序,每个应用程序都有自己的配置信息。资源我假设检查凭据的唯一方法是调用一个Auth方法,例如:client, err := app.Auth(context.Background())

白衣染霜花

我最终使用google.golang.org/api/transport强制验证并快速失败// Check if credential is correct_, err = transport.Creds(ctx, opt)if err != nil {    return nil, err}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go