使用以下代码初始化应用程序时,有什么方法可以验证 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())

白衣染霜花
TA贡献1796条经验 获得超10个赞
我最终使用google.golang.org/api/transport强制验证并快速失败
// Check if credential is correct
_, err = transport.Creds(ctx, opt)
if err != nil {
return nil, err
}
- 2 回答
- 0 关注
- 190 浏览
添加回答
举报
0/150
提交
取消