@@ -180,7 +180,7 @@ struct GenerativeAIService {
180
180
urlRequest. setValue ( " application/json " , forHTTPHeaderField: " Content-Type " )
181
181
182
182
if let appCheck = firebaseInfo. appCheck {
183
- let tokenResult = await fetchAppCheckToken ( appCheck: appCheck)
183
+ let tokenResult = try await fetchAppCheckToken ( appCheck: appCheck)
184
184
urlRequest. setValue ( tokenResult. token, forHTTPHeaderField: " X-Firebase-AppCheck " )
185
185
if let error = tokenResult. error {
186
186
AILog . error (
@@ -210,18 +210,24 @@ struct GenerativeAIService {
210
210
return urlRequest
211
211
}
212
212
213
- private func fetchAppCheckToken( appCheck: AppCheckInterop ) async
213
+ private func fetchAppCheckToken( appCheck: AppCheckInterop ) async throws
214
214
-> FIRAppCheckTokenResultInterop {
215
- if aiConfig. appCheck. requireLimitedUseTokens {
216
- if let token = await appCheck. getLimitedUseToken ? ( ) {
217
- return token
218
- }
215
+ if aiConfig. appCheck. requireLimitedUseTokens {
216
+ if let token = await appCheck. getLimitedUseToken ? ( ) {
217
+ return token
218
+ }
219
219
220
- AILog . error (
221
- code: . appCheckTokenFetchFailed,
222
- " Missing getLimitedUseToken() function, but requireLimitedUseTokens was enabled. "
223
- )
224
- // falls back to standard token
220
+ let errorMessage = " The provided App Check token provider doesn't implement getLimitedUseToken(), but requireLimitedUseTokens was enabled. " ;
221
+
222
+ #if Debug
223
+ fatalError ( errorMessage)
224
+ #else
225
+ throw NSError (
226
+ domain: " com.google.firebase.ai.GenerativeAIService " ,
227
+ code: AILog . MessageCode. appCheckTokenFetchFailed. rawValue,
228
+ userInfo: [ NSLocalizedDescriptionKey: errorMessage]
229
+ )
230
+ #endif
225
231
}
226
232
227
233
return await appCheck. getToken ( forcingRefresh: false )
0 commit comments