Skip to content

Commit 55aea3a

Browse files
committed
Move useLimitedUseTokens to FirebaseInfo
1 parent e2a3c3f commit 55aea3a

File tree

8 files changed

+23
-30
lines changed

8 files changed

+23
-30
lines changed

FirebaseAI/Sources/FirebaseAI.swift

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,7 @@ public final class FirebaseAI: Sendable {
110110
tools: tools,
111111
toolConfig: toolConfig,
112112
systemInstruction: systemInstruction,
113-
requestOptions: requestOptions,
114-
useLimitedUseAppCheckTokens: useLimitedUseAppCheckTokens
113+
requestOptions: requestOptions
115114
)
116115
}
117116

@@ -147,8 +146,7 @@ public final class FirebaseAI: Sendable {
147146
apiConfig: apiConfig,
148147
generationConfig: generationConfig,
149148
safetySettings: safetySettings,
150-
requestOptions: requestOptions,
151-
useLimitedUseAppCheckTokens: useLimitedUseAppCheckTokens
149+
requestOptions: requestOptions
152150
)
153151
}
154152

@@ -163,8 +161,6 @@ public final class FirebaseAI: Sendable {
163161

164162
let apiConfig: APIConfig
165163

166-
let useLimitedUseAppCheckTokens: Bool
167-
168164
/// A map of active `FirebaseAI` instances keyed by the `FirebaseApp` name and the `location`,
169165
/// in the format `appName:location`.
170166
private nonisolated(unsafe) static var instances: [InstanceKey: FirebaseAI] = [:]
@@ -227,11 +223,11 @@ public final class FirebaseAI: Sendable {
227223
projectID: projectID,
228224
apiKey: apiKey,
229225
firebaseAppID: app.options.googleAppID,
230-
firebaseApp: app
226+
firebaseApp: app,
227+
useLimitedUseAppCheckTokens: useLimitedUseAppCheckTokens
231228
)
232229
self.apiConfig = apiConfig
233230
self.location = location
234-
self.useLimitedUseAppCheckTokens = useLimitedUseAppCheckTokens
235231
}
236232

237233
func modelResourceName(modelName: String) -> String {

FirebaseAI/Sources/FirebaseInfo.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,22 @@ struct FirebaseInfo: Sendable {
2727
let projectID: String
2828
let apiKey: String
2929
let firebaseAppID: String
30+
let useLimitedUseAppCheckTokens: Bool
3031
let app: FirebaseApp
3132

3233
init(appCheck: AppCheckInterop? = nil,
3334
auth: AuthInterop? = nil,
3435
projectID: String,
3536
apiKey: String,
3637
firebaseAppID: String,
37-
firebaseApp: FirebaseApp) {
38+
firebaseApp: FirebaseApp,
39+
useLimitedUseAppCheckTokens: Bool) {
3840
self.appCheck = appCheck
3941
self.auth = auth
4042
self.projectID = projectID
4143
self.apiKey = apiKey
4244
self.firebaseAppID = firebaseAppID
45+
self.useLimitedUseAppCheckTokens = useLimitedUseAppCheckTokens
4346
app = firebaseApp
4447
}
4548
}

FirebaseAI/Sources/GenerativeAIService.swift

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,9 @@ struct GenerativeAIService {
3030

3131
private let urlSession: URLSession
3232

33-
private let useLimitedUseAppCheckTokens: Bool
34-
35-
init(firebaseInfo: FirebaseInfo, urlSession: URLSession, useLimitedUseAppCheckTokens: Bool) {
33+
init(firebaseInfo: FirebaseInfo, urlSession: URLSession) {
3634
self.firebaseInfo = firebaseInfo
3735
self.urlSession = urlSession
38-
self.useLimitedUseAppCheckTokens = useLimitedUseAppCheckTokens
3936
}
4037

4138
func loadRequest<T: GenerativeAIRequest>(request: T) async throws -> T.Response {
@@ -212,7 +209,7 @@ struct GenerativeAIService {
212209

213210
private func fetchAppCheckToken(appCheck: AppCheckInterop) async throws
214211
-> FIRAppCheckTokenResultInterop {
215-
if useLimitedUseAppCheckTokens {
212+
if firebaseInfo.useLimitedUseAppCheckTokens {
216213
if let token = await getLimitedUseAppCheckToken(appCheck: appCheck) {
217214
return token
218215
}
@@ -242,7 +239,7 @@ struct GenerativeAIService {
242239
Never
243240
>) in
244241
guard
245-
useLimitedUseAppCheckTokens,
242+
firebaseInfo.useLimitedUseAppCheckTokens,
246243
// `getLimitedUseToken(completion:)` is an optional protocol method. Optional binding
247244
// is performed to make sure `continuation` is called even if the method’s not implemented.
248245
let limitedUseTokenClosure = appCheck.getLimitedUseToken

FirebaseAI/Sources/GenerativeModel.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,6 @@ public final class GenerativeModel: Sendable {
7676
/// only text content is supported.
7777
/// - requestOptions: Configuration parameters for sending requests to the backend.
7878
/// - urlSession: The `URLSession` to use for requests; defaults to `URLSession.shared`.
79-
/// - useLimitedUseAppCheckTokens: Use App Check's limited-use tokens instead of the standard
80-
/// cached tokens.
8179
init(modelName: String,
8280
modelResourceName: String,
8381
firebaseInfo: FirebaseInfo,
@@ -88,15 +86,13 @@ public final class GenerativeModel: Sendable {
8886
toolConfig: ToolConfig? = nil,
8987
systemInstruction: ModelContent? = nil,
9088
requestOptions: RequestOptions,
91-
urlSession: URLSession = GenAIURLSession.default,
92-
useLimitedUseAppCheckTokens: Bool = false) {
89+
urlSession: URLSession = GenAIURLSession.default) {
9390
self.modelName = modelName
9491
self.modelResourceName = modelResourceName
9592
self.apiConfig = apiConfig
9693
generativeAIService = GenerativeAIService(
9794
firebaseInfo: firebaseInfo,
98-
urlSession: urlSession,
99-
useLimitedUseAppCheckTokens: useLimitedUseAppCheckTokens
95+
urlSession: urlSession
10096
)
10197
self.generationConfig = generationConfig
10298
self.safetySettings = safetySettings

FirebaseAI/Sources/Types/Public/Imagen/ImagenModel.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,12 @@ public final class ImagenModel {
5353
generationConfig: ImagenGenerationConfig?,
5454
safetySettings: ImagenSafetySettings?,
5555
requestOptions: RequestOptions,
56-
urlSession: URLSession = GenAIURLSession.default,
57-
useLimitedUseAppCheckTokens: Bool = false) {
56+
urlSession: URLSession = GenAIURLSession.default) {
5857
self.modelResourceName = modelResourceName
5958
self.apiConfig = apiConfig
6059
generativeAIService = GenerativeAIService(
6160
firebaseInfo: firebaseInfo,
62-
urlSession: urlSession,
63-
useLimitedUseAppCheckTokens: useLimitedUseAppCheckTokens
61+
urlSession: urlSession
6462
)
6563
self.generationConfig = generationConfig
6664
self.safetySettings = safetySettings

FirebaseAI/Tests/Unit/ChatTests.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ final class ChatTests: XCTestCase {
6868
projectID: "my-project-id",
6969
apiKey: "API_KEY",
7070
firebaseAppID: "My app ID",
71-
firebaseApp: app
71+
firebaseApp: app,
72+
useLimitedUseAppCheckTokens: false
7273
),
7374
apiConfig: FirebaseAI.defaultVertexAIAPIConfig,
7475
tools: nil,

FirebaseAI/Tests/Unit/GenerativeModelVertexAITests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -507,13 +507,13 @@ final class GenerativeModelVertexAITests: XCTestCase {
507507
modelName: testModelName,
508508
modelResourceName: testModelResourceName,
509509
firebaseInfo: GenerativeModelTestUtil.testFirebaseInfo(
510-
appCheck: AppCheckInteropFake(token: appCheckToken)
510+
appCheck: AppCheckInteropFake(token: appCheckToken),
511+
useLimitedUseAppCheckTokens: true
511512
),
512513
apiConfig: apiConfig,
513514
tools: nil,
514515
requestOptions: RequestOptions(),
515516
urlSession: urlSession,
516-
useLimitedUseAppCheckTokens: true
517517
)
518518
MockURLProtocol
519519
.requestHandler = try GenerativeModelTestUtil.httpRequestHandler(

FirebaseAI/Tests/Unit/TestUtilities/GenerativeModelTestUtil.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ enum GenerativeModelTestUtil {
103103

104104
static func testFirebaseInfo(appCheck: AppCheckInterop? = nil,
105105
auth: AuthInterop? = nil,
106-
privateAppID: Bool = false) -> FirebaseInfo {
106+
privateAppID: Bool = false,
107+
useLimitedUseAppCheckTokens: Bool = false) -> FirebaseInfo {
107108
let app = FirebaseApp(instanceWithName: "testApp",
108109
options: FirebaseOptions(googleAppID: "ignore",
109110
gcmSenderID: "ignore"))
@@ -114,7 +115,8 @@ enum GenerativeModelTestUtil {
114115
projectID: "my-project-id",
115116
apiKey: "API_KEY",
116117
firebaseAppID: "My app ID",
117-
firebaseApp: app
118+
firebaseApp: app,
119+
useLimitedUseAppCheckTokens: useLimitedUseAppCheckTokens
118120
)
119121
}
120122
}

0 commit comments

Comments
 (0)