为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕容708150 2022-06-13 16:41:52
使用以下代码初始化应用程序时,有什么方法可以验证 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 := defaultAuthOverridesif 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) 实例的初始化过程中检查凭据是否有效,因为它似乎捕获错误不是这里的解决方案?
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我认为答案在文档中:

某些用例要求您同时创建多个应用程序。例如,您可能希望从一个 Firebase 项目的实时数据库中读取数据,并为另一个项目创建自定义令牌。或者您可能希望使用不同的凭据对两个应用程序进行身份验证。Firebase SDK 允许您同时创建多个应用程序,每个应用程序都有自己的配置信息。

资源

我假设检查凭据的唯一方法是调用一个Auth方法,例如:

client, err := app.Auth(context.Background())


查看完整回答
反对 回复 2022-06-13
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

我最终使用google.golang.org/api/transport强制验证并快速失败


// Check if credential is correct

_, err = transport.Creds(ctx, opt)

if err != nil {

    return nil, err

}


查看完整回答
反对 回复 2022-06-13
  • 2 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号