如何使用firebase admin sdk for Go处理错误?

eagi6jfj  于 2022-12-24  发布在  Go
关注(0)|答案(1)|浏览(147)

我是Go新手,正在尝试了解如何访问错误详细信息。我已经创建了一个用户,现在我预计会收到一个“email-already-exists”错误:

fbUser, err := s.auth.CreateUser(ctx, fbUserParams)
    if err != nil {
        return nil, errors.New("[email] already exists") // <- it could be any other error, and I want to be able to handle it
    }

下面是我在调试器中看到的内容:

如何处理错误以便从中获取代码?

brc7rcf0

brc7rcf01#

我认为最好的选择是使用Errors.As函数,您可以在这里了解更多信息:https://pkg.go.dev/errors#As
Google Firebase返回的错误类型为FirebaseError,涉及两个属性:CodeString。您可以尝试使用以下代码段:

fbUser, err := s.auth.CreateUser(ctx, fbUserParams)
if err != nil {
    var firebaseErr *FirebaseError
    if errors.As(err, &firebaseErr) {
        // here you can access "Code" and "String"
    } else {
        return nil, errors.New("[email] already exists")
    }
}

多亏了这段代码,你应该能够管理你所需要的。注意正确导入提供FirebaseError类型的包。也许先读一些Firebase文档。
希望这有帮助!

相关问题