【问题标题】:How to inspect Firestore network traffic with charles proxy?如何使用 charles 代理检查 Firestore 网络流量?
【发布时间】:2021-12-22 07:19:55
【问题描述】:

据我所知,Firestore 在从 android/ios 应用程序建立连接时使用协议缓冲区。出于好奇,我想看看网络流量的上升和下降,但我似乎无法让查尔斯代理显示任何真实的解码信息。我可以看到打开的连接,但我想看看网络上发生了什么。

Firestores sdks 似乎是开源的。所以应该可以用它来帮助解码输出。 https://github.com/firebase/firebase-js-sdk/tree/master/packages/firestore/src/protos

【问题讨论】:

    标签: firebase google-cloud-firestore charles-proxy


    【解决方案1】:

    一些 Google 服务(如 AdMob:https://developers.google.com/admob/android/charles)提供了有关如何使用 Charles Proxy 读取网络流量的文档,但我认为您的问题是,自 Charles has support for protobufs 以来是否可以使用 Cloud Firestore。

    答案是:现在不可能。可以看到 firestore 请求,但实际上无法读取任何正在发送的数据,因为它正在使用协议缓冲区。没有关于如何将 Charles 与 Firestore 请求一起使用的文档,没有 ETA 的产品团队对此有一个未解决的问题(功能请求)。同时,你可以试试Protocol Buffers Viewer

    查看 Firestore 网络流量的替代方法可能是:

    来自Firestore documentation

    对于所有应用类型,性能监控会自动收集 跟踪您的应用发出的每个网络请求,称为 HTTP/S 网络请求跟踪。这些跟踪收集当时的指标 在您的应用程序向服务端点发出请求和何时之间 来自该端点的响应是完整的。对于任何端点 您的应用发出请求,性能监控会捕获几个 指标:

    • 响应时间 - 从发出请求到完全收到响应之间的时间
    • 响应负载大小 - 应用下载的网络负载的字节大小
    • 请求负载大小 - 应用上传的网络负载的字节大小
    • 成功率 - 成功响应与总响应的百分比(用于衡量网络或服务器故障)

    您可以在“网络请求”子选项卡中查看来自这些跟踪的数据 跟踪表,位于性能仪表板的底部 (在本页后面了解有关使用console 的更多信息)。这个 开箱即用的监控包括应用程序的大多数网络请求。 但是,某些请求可能不会被报告,或者您可能会使用 不同的库来发出网络请求。在这些情况下,您可以 使用性能监控 API 手动检测 custom network request traces。 Firebase 显示 URL 模式及其 的性能仪表板中的网络选项卡中的聚合数据 Firebase 控制台。

    来自stackoverflow thread

    Cloud Firestore 的有线协议基于 gRPC,即 确实比 实时数据库使用。一种方法是启用调试日志记录:

    firebase.firestore.setLogLevel('debug');
    

    完成此操作后,调试输出将开始记录。

    【讨论】:

    • 感谢@Priyashree Bhadra 的精彩回答。 1. 我很高兴听到有功能请求。如果能在某个时候完成,那真是太棒了。 2. 我确实有 perfmon,但它并没有真正解决我的用例(调试和全面了解离开我的设备的内容与通过网络传入的内容。3. 我不知道我可以使用的日志级别设置,这应该给我一些起点。请在问题跟踪器中添加另一颗星作为创建 charles + firestore 文档的投票。干杯
    • 当然。如果我的回答有用,请点击它左侧的点赞按钮 (▲)。如果它回答了您的问题,请单击复选标记 (✓) 接受它。这样其他人就知道你得到了(足够的)帮助。
    猜你喜欢
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多