[GH-ISSUE #449] Investigate why Firebase traffics "Realtime Database" doesn't show up on Proxyman #448

Closed
opened 2026-03-03 19:18:52 +03:00 by kerem · 7 comments
Owner

Originally created by @NghiaTranUIT on GitHub (Mar 25, 2020).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/449

Originally assigned to: @NghiaTranUIT on GitHub.

Description

A user reports that Firebase traffic (Realtime Database traffic) doesn't present on the app even though he can see other traffic as usual.

Conversation: https://twitter.com/jeanetienne/status/1242659703185764357

Acceptance Criteria

  • Investigate why
  • Fix if possible
Originally created by @NghiaTranUIT on GitHub (Mar 25, 2020). Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/449 Originally assigned to: @NghiaTranUIT on GitHub. ### Description A user reports that Firebase traffic (Realtime Database traffic) doesn't present on the app even though he can see other traffic as usual. Conversation: https://twitter.com/jeanetienne/status/1242659703185764357 ### Acceptance Criteria - Investigate why - Fix if possible
kerem 2026-03-03 19:18:52 +03:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@NghiaTranUIT commented on GitHub (Mar 25, 2020):

After the investigation, it turns out that Proxyman or other tools couldn't capture the traffic from Firebase Realtime Database since it's not an HTTP/HTTPS application layer, so the traffic doesn't respect the HTTP/HTTPS Proxy Config -> Doesn't go through Proxyman -> Doesn't show up.

However, Proxyman can capture other HTTP/HTTPS Requests as usual when authorizing with Firebase server as an example 👍

<!-- gh-comment-id:603934228 --> @NghiaTranUIT commented on GitHub (Mar 25, 2020): After the investigation, it turns out that Proxyman or other tools couldn't capture the traffic from Firebase Realtime Database since it's not an HTTP/HTTPS application layer, so the traffic doesn't respect the HTTP/HTTPS Proxy Config -> Doesn't go through Proxyman -> Doesn't show up. However, Proxyman can capture other HTTP/HTTPS Requests as usual when authorizing with Firebase server as an example 👍
Author
Owner

@jamesdixon commented on GitHub (Nov 30, 2020):

Hello! Is the traffic not sent over a common protocol that Proxyman could recognize?

<!-- gh-comment-id:736009524 --> @jamesdixon commented on GitHub (Nov 30, 2020): Hello! Is the traffic not sent over a common protocol that Proxyman could recognize?
Author
Owner

@jamesdixon commented on GitHub (Nov 30, 2020):

Would love a workaround

<!-- gh-comment-id:736009586 --> @jamesdixon commented on GitHub (Nov 30, 2020): Would love a workaround
Author
Owner

@NghiaTranUIT commented on GitHub (Dec 1, 2020):

@jamesdixon You can workaround by using Atlantis (https://github.com/ProxymanApp/atlantis) (see Advanced Usage section)

Basically, you can construct a Request/Response from Firebase and add to Atlantis, then it will display on Proxyman for inspector.

// Add to Atlantis and show it on Proxyman app
Atlantis.add(request: request, response: response, responseBody: responseData)

It's manual, but we can see the Firebase traffic 😄

<!-- gh-comment-id:736163809 --> @NghiaTranUIT commented on GitHub (Dec 1, 2020): @jamesdixon You can workaround by using Atlantis (https://github.com/ProxymanApp/atlantis) (see Advanced Usage section) Basically, you can construct a Request/Response from Firebase and add to Atlantis, then it will display on Proxyman for inspector. ```swift // Add to Atlantis and show it on Proxyman app Atlantis.add(request: request, response: response, responseBody: responseData) ``` It's manual, but we can see the Firebase traffic 😄
Author
Owner

@NicolasCombe5555 commented on GitHub (Sep 24, 2021):

Is this ever going to be integrated or be less manual? Asking for a friend 😅

<!-- gh-comment-id:926384810 --> @NicolasCombe5555 commented on GitHub (Sep 24, 2021): Is this ever going to be integrated or be less manual? Asking for a friend 😅
Author
Owner

@NghiaTranUIT commented on GitHub (Sep 24, 2021):

Unfortunately, Firebase SKD is a closed source so I'm unable to integrate Proxyman to Firebase.

From what I investigate recently on Firebase, they are still using a non-HTTP protocol to communicate to Firebase Server. Therefore, Proxyman could not automatically capture it.

I suppose that using Atlantis framework and add the request/response manually is a solution I can think of 👍


Firebase sdk doesn't support HTTP Proxy too, so there is no way to force Firebase to use Proxyman Proxy Server 😿

<!-- gh-comment-id:926386216 --> @NghiaTranUIT commented on GitHub (Sep 24, 2021): Unfortunately, Firebase SKD is a closed source so I'm unable to integrate Proxyman to Firebase. From what I investigate recently on Firebase, they are still using a non-HTTP protocol to communicate to Firebase Server. Therefore, Proxyman could not automatically capture it. I suppose that using Atlantis framework and add the request/response manually is a solution I can think of 👍 ------------------ Firebase sdk doesn't support HTTP Proxy too, so there is no way to force Firebase to use Proxyman Proxy Server 😿
Author
Owner

@NghiaTranUIT commented on GitHub (Nov 25, 2021):

@jamesdixon @NicolasCombe5555 I did an investigation this morning and turnss out Proxyman can capture Firebase Google Analytic. (Some reports mentions that Proxyman could not see any Firebase GA traffic)

Traffic from https://app-mesurement.com/a

Screen Shot 2021-11-25 at 09 56 38

Traffic from https://firebaselogging-pa.googleapis.com/v1/firelog/legacy/batchlog

Screen_Shot_2021-11-25_at_09_51_15

As you can see, Proxyman can capture and partially read the value of the protobuf content. We can also see the event name, event ID, Event Description.

Suggestion

If Proxyman could not capture Firebse GA traffic, I guess that your event is batched and on the schedule.

In order to capture the traffic in real-time, we should use -FIRDebugEnabled (https://firebase.google.com/docs/analytics/debugview) to force the SDK to send the event immediately (instead of batching and sending in an hour later).

Hope that help 👍

<!-- gh-comment-id:978798839 --> @NghiaTranUIT commented on GitHub (Nov 25, 2021): @jamesdixon @NicolasCombe5555 I did an investigation this morning and turnss out Proxyman can capture Firebase Google Analytic. (Some reports mentions that Proxyman could not see any Firebase GA traffic) ### Traffic from https://app-mesurement.com/a <img width="1858" alt="Screen Shot 2021-11-25 at 09 56 38" src="https://user-images.githubusercontent.com/5878421/143375624-675312c3-d2f9-42de-8090-9f1afe79e189.png"> ### Traffic from https://firebaselogging-pa.googleapis.com/v1/firelog/legacy/batchlog <img width="1858" alt="Screen_Shot_2021-11-25_at_09_51_15" src="https://user-images.githubusercontent.com/5878421/143375715-ad0c1049-011a-4ef7-9a6f-a608bf6ffdba.png"> ---------------------------------- As you can see, Proxyman can capture and partially read the value of the protobuf content. We can also see the event name, event ID, Event Description. ### Suggestion If Proxyman could not capture Firebse GA traffic, I guess that your event is batched and on the schedule. In order to capture the traffic in real-time, we should use` -FIRDebugEnabled` (https://firebase.google.com/docs/analytics/debugview) to force the SDK to send the event immediately (instead of batching and sending in an hour later). Hope that help 👍
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Proxyman#448
No description provided.