使用以下代碼初始化應用程序時,有什么方法可以驗證 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 項目的實時數據庫中讀取數據,并為另一個項目創建自定義令牌?;蛘吣赡芟M褂貌煌膽{據對兩個應用程序進行身份驗證。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 關注
- 189 瀏覽
添加回答
舉報
0/150
提交
取消