firebase / firebase-ios-sdk

Firebase SDK for Apple App Development
https://firebase.google.com
Apache License 2.0
5.53k stars 1.44k forks source link

Fix error generation when status is .internal #11310

Open tciuro opened 1 year ago

tciuro commented 1 year ago

Description

Expectation When an internal error is received on the client side (iOS), I would expect to contain the following:

code: internal
message: <some string>

Reality What actually happens is that the message is dropped/rewritten with INTERNAL, so any potential critical information gets destroyed.

Reproducing the issue

From a cloud function throw the following error:

throw new functions.https.HttpsError('internal', 'Something really bad happened!')

On the client, the content of the generated message is:

code: INTERNAL
message: INTERNAL

Firebase SDK Version

10.9.0

Xcode Version

14.3

Installation Method

Swift Package Manager

Firebase Product(s)

Functions

Targeted Platforms

iOS

Relevant Log Output

No response

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
```json { "pins" : [ { "identity" : "abseil-cpp-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/abseil-cpp-binary.git", "state" : { "revision" : "bfc0b6f81adc06ce5121eb23f628473638d67c5c", "version" : "1.2022062300.0" } }, { "identity" : "gcdwebserver", "kind" : "remoteSourceControl", "location" : "https://github.com/SlaunchaMan/GCDWebServer.git", "state" : { "revision" : "935e2736044e71e5341663c3cc9a335ba6867a2b" } }, { "identity" : "googleappmeasurement", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { "branch" : "main", "revision" : "69f5b8425dd473d2f2475bba7f88f82cd9da0e36" } }, { "identity" : "googledatatransport", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleDataTransport.git", "state" : { "revision" : "7874c1b48cbffd086ce8a052c4be873a78613775", "version" : "9.2.3" } }, { "identity" : "googleutilities", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleUtilities.git", "state" : { "revision" : "871d43135925cde39ef7421d8723ce47edfdcc39", "version" : "7.11.1" } }, { "identity" : "grpc-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/grpc-binary.git", "state" : { "revision" : "2b7656d8ee892cd39db460b1a0d849de618405e6", "version" : "1.50.1" } }, { "identity" : "gtm-session-fetcher", "kind" : "remoteSourceControl", "location" : "https://github.com/google/gtm-session-fetcher.git", "state" : { "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd", "version" : "3.1.1" } }, { "identity" : "leveldb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/leveldb.git", "state" : { "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b", "version" : "1.22.2" } }, { "identity" : "nanopb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/nanopb.git", "state" : { "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", "version" : "2.30909.0" } }, { "identity" : "ocmock", "kind" : "remoteSourceControl", "location" : "https://github.com/erikdoe/ocmock.git", "state" : { "revision" : "c5eeaa6dde7c308a5ce48ae4d4530462dd3a1110" } }, { "identity" : "promises", "kind" : "remoteSourceControl", "location" : "https://github.com/google/promises.git", "state" : { "revision" : "ec957ccddbcc710ccc64c9dcbd4c7006fcf8b73a", "version" : "2.2.0" } }, { "identity" : "swift-protobuf", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-protobuf.git", "state" : { "revision" : "0af9125c4eae12a4973fb66574c53a54962a9e1e", "version" : "1.21.0" } } ], "version" : 2 } ```

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
```yml Replace this line with the contents of your Podfile.lock! ```
tciuro commented 1 year ago

Proposed fix: https://github.com/firebase/firebase-ios-sdk/pull/11311