@@ -31,9 +31,14 @@ struct RPCError: Error {
3131 self . details = details
3232 }
3333
34+ // TODO(andrewheard): Remove this method after the Firebase Vertex AI API launch.
3435 func isFirebaseMLServiceDisabledError( ) -> Bool {
3536 return details. contains { $0. isFirebaseMLServiceDisabledErrorDetails ( ) }
3637 }
38+
39+ func isFirebaseVertexAIServiceDisabledError( ) -> Bool {
40+ return details. contains { $0. isFirebaseVertexAIServiceDisabledErrorDetails ( ) }
41+ }
3742}
3843
3944extension RPCError : Decodable {
@@ -86,17 +91,26 @@ struct ErrorDetails {
8691 return type == ErrorDetails . errorInfoType
8792 }
8893
94+ func isServiceDisabledError( ) -> Bool {
95+ return isErrorInfo ( ) && reason == " SERVICE_DISABLED " && domain == " googleapis.com "
96+ }
97+
98+ // TODO(andrewheard): Remove this method after the Firebase Vertex AI API launch.
8999 func isFirebaseMLServiceDisabledErrorDetails( ) -> Bool {
90- guard isErrorInfo ( ) else {
100+ guard isServiceDisabledError ( ) else {
91101 return false
92102 }
93- guard reason == " SERVICE_DISABLED " else {
103+ guard let metadata , metadata [ " service " ] == " firebaseml.googleapis.com " else {
94104 return false
95105 }
96- guard domain == " googleapis.com " else {
106+ return true
107+ }
108+
109+ func isFirebaseVertexAIServiceDisabledErrorDetails( ) -> Bool {
110+ guard isServiceDisabledError ( ) else {
97111 return false
98112 }
99- guard let metadata, metadata [ " service " ] == " firebaseml .googleapis.com" else {
113+ guard let metadata, metadata [ " service " ] == " firebasevertexai .googleapis.com" else {
100114 return false
101115 }
102116 return true
0 commit comments