@@ -59,6 +59,9 @@ internal enum FunctionsConstants {
5959 /// The region to use for all function references.
6060 internal let region : String
6161
62+ /// The boolean to decide if getLimitedUseToken() is generated
63+ internal var useLimitedUseAppCheckToken : Bool = false
64+
6265 // MARK: - Public APIs
6366
6467 /**
@@ -139,11 +142,19 @@ internal enum FunctionsConstants {
139142 * Creates a reference to the Callable HTTPS trigger with the given name.
140143 * - Parameter name The name of the Callable HTTPS trigger.
141144 */
142- @objc ( HTTPSCallableWithName: ) open func httpsCallable( _ name: String ) -> HTTPSCallable {
145+ @objc ( HTTPSCallableWithName: useLimitedUseAppCheckToken: ) open func httpsCallable( _ name: String ,
146+ useLimitedUseAppCheckToken: Bool =
147+ false )
148+ -> HTTPSCallable {
149+ self . useLimitedUseAppCheckToken = useLimitedUseAppCheckToken
143150 return HTTPSCallable ( functions: self , name: name)
144151 }
145152
146- @objc ( HTTPSCallableWithURL: ) open func httpsCallable( _ url: URL ) -> HTTPSCallable {
153+ @objc ( HTTPSCallableWithURL: useLimitedUseAppCheckToken: ) open func httpsCallable( _ url: URL ,
154+ useLimitedUseAppCheckToken: Bool =
155+ false )
156+ -> HTTPSCallable {
157+ self . useLimitedUseAppCheckToken = useLimitedUseAppCheckToken
147158 return HTTPSCallable ( functions: self , url: url)
148159 }
149160
@@ -157,14 +168,19 @@ internal enum FunctionsConstants {
157168 /// - Returns: A reference to an HTTPS-callable Cloud Function that can be used to make Cloud Functions invocations.
158169 open func httpsCallable< Request: Encodable ,
159170 Response: Decodable > ( _ name: String ,
171+ useLimitedUseAppCheckToken: Bool ,
160172 requestAs: Request . Type = Request . self,
161173 responseAs: Response . Type = Response . self,
162174 encoder: FirebaseDataEncoder = FirebaseDataEncoder (
163175 ) ,
164176 decoder: FirebaseDataDecoder = FirebaseDataDecoder (
165177 ) )
166178 -> Callable < Request , Response > {
167- return Callable ( callable: httpsCallable ( name) , encoder: encoder, decoder: decoder)
179+ return Callable (
180+ callable: httpsCallable ( name, useLimitedUseAppCheckToken: useLimitedUseAppCheckToken) ,
181+ encoder: encoder,
182+ decoder: decoder
183+ )
168184 }
169185
170186 /// Creates a reference to the Callable HTTPS trigger with the given name, the type of an `Encodable`
@@ -177,14 +193,19 @@ internal enum FunctionsConstants {
177193 /// - Returns: A reference to an HTTPS-callable Cloud Function that can be used to make Cloud Functions invocations.
178194 open func httpsCallable< Request: Encodable ,
179195 Response: Decodable > ( _ url: URL ,
196+ useLimitedUseAppCheckToken: Bool ,
180197 requestAs: Request . Type = Request . self,
181198 responseAs: Response . Type = Response . self,
182199 encoder: FirebaseDataEncoder = FirebaseDataEncoder (
183200 ) ,
184201 decoder: FirebaseDataDecoder = FirebaseDataDecoder (
185202 ) )
186203 -> Callable < Request , Response > {
187- return Callable ( callable: httpsCallable ( url) , encoder: encoder, decoder: decoder)
204+ return Callable (
205+ callable: httpsCallable ( url, useLimitedUseAppCheckToken: useLimitedUseAppCheckToken) ,
206+ encoder: encoder,
207+ decoder: decoder
208+ )
188209 }
189210
190211 /**
@@ -353,8 +374,20 @@ internal enum FunctionsConstants {
353374 fetcher. setRequestValue ( fcmToken, forHTTPHeaderField: Constants . fcmTokenHeader)
354375 }
355376
356- if let appCheckToken = context. appCheckToken {
357- fetcher. setRequestValue ( appCheckToken, forHTTPHeaderField: Constants . appCheckTokenHeader)
377+ if useLimitedUseAppCheckToken == true {
378+ if let appCheckToken = context. limitedUseAppCheckToken {
379+ fetcher. setRequestValue (
380+ appCheckToken,
381+ forHTTPHeaderField: Constants . appCheckTokenHeader
382+ )
383+ }
384+ } else {
385+ if let appCheckToken = context. appCheckToken {
386+ fetcher. setRequestValue (
387+ appCheckToken,
388+ forHTTPHeaderField: Constants . appCheckTokenHeader
389+ )
390+ }
358391 }
359392
360393 // Override normal security rules if this is a local test.
0 commit comments