@@ -50,9 +50,6 @@ actor GrpcClient: CustomStringConvertible {
5050
5151 private let callerSDKType : CallerSDKType
5252
53- // Remove debug flag when logging privacy is properly handled.
54- private let debugEnable = false
55-
5653 enum RequestHeaders {
5754 static let googRequestParamsHeader = " x-goog-request-params "
5855 static let authorizationHeader = " x-firebase-auth-token "
@@ -65,11 +62,8 @@ actor GrpcClient: CustomStringConvertible {
6562
6663 private lazy var client : FirebaseDataConnectAsyncClient ? = {
6764 do {
68- if debugEnable == true {
69- FirebaseLogger . dataConnect. debug ( " \( self . description) initialization starts. " )
70- } else {
71- FirebaseLogger . dataConnect. debug ( " GrpcClient initialization starts. " )
72- }
65+ DataConnect . logger
66+ . debug ( " GrpcClient \( self . description, privacy: . private) initialization starts. " )
7367 let group = PlatformSupport . makeEventLoopGroup ( loopCount: threadPoolSize)
7468 let channel = try GRPCChannelPool . with (
7569 target: . host( serverSettings. host, port: serverSettings. port) ,
@@ -78,18 +72,11 @@ actor GrpcClient: CustomStringConvertible {
7872 . plaintext,
7973 eventLoopGroup: group
8074 )
81- if debugEnable == true {
82- FirebaseLogger . dataConnect. debug ( " \( self . description) has been created. " )
83- } else {
84- FirebaseLogger . dataConnect. debug ( " GrpcClient has been created. " )
85- }
75+ DataConnect . logger. debug ( " GrpcClient \( self . description, privacy: . private) has been created. " )
8676 return FirebaseDataConnectAsyncClient ( channel: channel)
8777 } catch {
88- if debugEnable == true {
89- FirebaseLogger . dataConnect. error ( " Error: \( error) when creating \( self . description) . " )
90- } else {
91- FirebaseLogger . dataConnect. debug ( " Error: \( error) when creating GrpcClient. " )
92- }
78+ DataConnect . logger
79+ . debug ( " Error: \( error) when creating GrpcClient \( self . description, privacy: . private) . " )
9380 return nil
9481 }
9582 } ( )
@@ -130,8 +117,7 @@ actor GrpcClient: CustomStringConvertible {
130117 googRequestHeaderValue = " location= \( self . connectorConfig. location) &frontend=data "
131118
132119 description = """
133- GrpcClient: \
134- projectId= \( projectId) \
120+ : projectId= \( projectId) \
135121 connector= \( connectorConfig. connector) \
136122 host= \( serverSettings. host) \
137123 port= \( serverSettings. port) \
@@ -145,7 +131,7 @@ actor GrpcClient: CustomStringConvertible {
145131 . Type )
146132 async throws -> OperationResult < ResultType > {
147133 guard let client else {
148- FirebaseLogger . dataConnect
134+ DataConnect . logger
149135 . error ( " When calling executeQuery(), grpc client has not been configured. " )
150136 throw DataConnectError . grpcNotConfigured
151137 }
@@ -155,49 +141,29 @@ actor GrpcClient: CustomStringConvertible {
155141 connectorName: connectorName,
156142 request: request
157143 )
144+ let requestString = try " " + grpcRequest. jsonString ( )
158145
159146 do {
160- if debugEnable == true {
161- try FirebaseLogger . dataConnect
162- . debug ( " executeQuery() sends grpc request: \( grpcRequest. jsonString ( ) ) . " )
163- } else {
164- try FirebaseLogger . dataConnect
165- . debug ( " executeQuery() sends grpc request. " )
166- }
147+ DataConnect . logger
148+ . debug ( " executeQuery() sends grpc request \( requestString, privacy: . private) . " )
167149 let results = try await client. executeQuery ( grpcRequest, callOptions: createCallOptions ( ) )
168- if debugEnable == true {
169- try FirebaseLogger . dataConnect
170- . debug ( " executeQuery() receives response: \( results. jsonString ( ) ) . " )
171- } else {
172- try FirebaseLogger . dataConnect
173- . debug ( " executeQuery() receives response. " )
174- }
150+ let resultsString = try " " + results. jsonString ( )
151+ DataConnect . logger
152+ . debug ( " executeQuery() receives response: \( resultsString, privacy: . private) . " )
175153 // Not doing error decoding here
176154 if let decodedResults = try codec. decode ( result: results. data, asType: resultType) {
177155 return OperationResult ( data: decodedResults)
178156 } else {
179157 // In future, set this as error in OperationResult
180- if debugEnable == true {
181- try FirebaseLogger . dataConnect
182- . error ( " executeQuery() response: \( results. jsonString ( ) ) decode failed. " )
183- } else {
184- try FirebaseLogger . dataConnect
185- . error ( " executeQuery() response decode failed. " )
186- }
158+ DataConnect . logger
159+ . debug ( " executeQuery() response \( resultsString, privacy: . private) decode failed. " )
187160 throw DataConnectError . decodeFailed
188161 }
189162 } catch {
190- if debugEnable == true {
191- try FirebaseLogger . dataConnect
192- . error (
193- " executeQuery() with request: \( grpcRequest. jsonString ( ) ) grpc call FAILED with \( error) . "
194- )
195- } else {
196- try FirebaseLogger . dataConnect
197- . error (
198- " executeQuery() grpc call FAILED with \( error) . "
199- )
200- }
163+ DataConnect . logger
164+ . error (
165+ " executeQuery() \( requestString, privacy: . private) grpc call FAILED with \( error) . "
166+ )
201167 throw error
202168 }
203169 }
@@ -208,7 +174,7 @@ actor GrpcClient: CustomStringConvertible {
208174 . Type )
209175 async throws -> OperationResult < ResultType > {
210176 guard let client else {
211- FirebaseLogger . dataConnect
177+ DataConnect . logger
212178 . error ( " When calling executeMutation(), grpc client has not been configured. " )
213179 throw DataConnectError . grpcNotConfigured
214180 }
@@ -219,46 +185,27 @@ actor GrpcClient: CustomStringConvertible {
219185 request: request
220186 )
221187
188+ let requestString = try " " + grpcRequest. jsonString ( )
189+
222190 do {
223- if debugEnable == true {
224- try FirebaseLogger . dataConnect
225- . debug ( " executeMutation() sends grpc request: \( grpcRequest. jsonString ( ) ) . " )
226- } else {
227- try FirebaseLogger . dataConnect
228- . debug ( " executeMutation() sends grpc request. " )
229- }
191+ DataConnect . logger
192+ . debug ( " executeMutation() sends grpc request \( requestString, privacy: . private) . " )
230193 let results = try await client. executeMutation ( grpcRequest, callOptions: createCallOptions ( ) )
231- if debugEnable == true {
232- try FirebaseLogger . dataConnect
233- . debug ( " executeMutation() receives response: \( results. jsonString ( ) ) . " )
234- } else {
235- try FirebaseLogger . dataConnect
236- . debug ( " executeMutation() receives response. " )
237- }
194+ let resultsString = try " " + results. jsonString ( )
195+ DataConnect . logger
196+ . debug ( " executeMutation() receives response: \( resultsString, privacy: . private) . " )
238197 if let decodedResults = try codec. decode ( result: results. data, asType: resultType) {
239198 return OperationResult ( data: decodedResults)
240199 } else {
241- if debugEnable == true {
242- try FirebaseLogger . dataConnect
243- . error ( " executeMutation() response: \( results. jsonString ( ) ) decode failed. " )
244- } else {
245- try FirebaseLogger . dataConnect
246- . error ( " executeMutation() response decode failed. " )
247- }
200+ DataConnect . logger
201+ . debug ( " executeMutation() response \( resultsString, privacy: . private) decode failed. " )
248202 throw DataConnectError . decodeFailed
249203 }
250204 } catch {
251- if debugEnable == true {
252- try FirebaseLogger . dataConnect
253- . error (
254- " executeMutation() with request: \( grpcRequest. jsonString ( ) ) grpc call FAILED with \( error) . "
255- )
256- } else {
257- try FirebaseLogger . dataConnect
258- . error (
259- " executeMutation() grpc call FAILED with \( error) . "
260- )
261- }
205+ DataConnect . logger
206+ . error (
207+ " executeMutation() \( requestString, privacy: . private) grpc call FAILED with \( error) . "
208+ )
262209 throw error
263210 }
264211 }
@@ -274,38 +221,28 @@ actor GrpcClient: CustomStringConvertible {
274221 do {
275222 if let token = try await auth. currentUser? . getIDToken ( ) {
276223 headers. add ( name: RequestHeaders . authorizationHeader, value: " \( token) " )
277- if debugEnable == true {
278- FirebaseLogger . dataConnect
279- . debug ( " Auth token added: \( token) " )
280- } else {
281- FirebaseLogger . dataConnect
282- . debug ( " Auth token added. " )
283- }
224+ DataConnect . logger
225+ . debug ( " Auth token added \( token, privacy: . private) " )
284226 } else {
285- FirebaseLogger . dataConnect . debug ( " No auth token available. Not adding auth header. " )
227+ DataConnect . logger . debug ( " No auth token available. Not adding auth header. " )
286228 }
287229 } catch {
288- FirebaseLogger . dataConnect
230+ DataConnect . logger
289231 . debug ( " Cannot get auth token successfully due to: \( error) . Not adding auth header. " )
290232 }
291233
292234 // Add AppCheck token if available
293235 do {
294236 if let token = try await appCheck? . token ( forcingRefresh: false ) {
295237 headers. add ( name: RequestHeaders . appCheckHeader, value: token. token)
296- if debugEnable == true {
297- FirebaseLogger . dataConnect
298- . debug ( " App Check token added: \( token. token) " )
299- } else {
300- FirebaseLogger . dataConnect
301- . debug ( " App Check token added. " )
302- }
238+ DataConnect . logger
239+ . debug ( " App Check token added \( token. token) " )
303240 } else {
304- FirebaseLogger . dataConnect
241+ DataConnect . logger
305242 . debug ( " App Check token unavailable. Not adding App Check header. " )
306243 }
307244 } catch {
308- FirebaseLogger . dataConnect
245+ DataConnect . logger
309246 . debug (
310247 " Cannot get App Check token successfully due to: \( error) . Not adding App Check header. "
311248 )
0 commit comments