React native 使用React Native Firebase时如何远程调试JS

React native 使用React Native Firebase时如何远程调试JS,react-native,react-native-firebase,React Native,React Native Firebase,因此,我有一个基于React Native firebase starter的React Native应用程序,我想使用比console.log更好的工具调试它,通过React Native log android输出。调试器断点、对象检查等 对于标准的React本机应用程序,可以使用“Debug JS Remote”选项,据我所知,该选项在桌面Chrome中运行应用程序的JS,因此可以使用其开发工具 然而,这似乎不适用于React Native Firebase。我认为这是因为它使用了大量本地

因此,我有一个基于
React Native firebase starter
的React Native应用程序,我想使用比
console.log更好的工具调试它,通过
React Native log android
输出。调试器断点、对象检查等

对于标准的React本机应用程序,可以使用“Debug JS Remote”选项,据我所知,该选项在桌面Chrome中运行应用程序的JS,因此可以使用其开发工具

然而,这似乎不适用于React Native Firebase。我认为这是因为它使用了大量本地Android/iOS模块以及仅限移动设备的Firebase auth,因此只能在设备上运行。。。或者类似的


我是做错了什么,还是有办法解决这个问题?什么样的调试设置可以为我提供最好的DX?

示例项目
react native firebase starter
是本机构建的(而不是使用Expo创建的),因此可以使用您提到的调试工具按预期工作

确保在运行应用程序时选择了构建变量
Debug
,如在
Release
模式Metro Bundler/Packager中,并且调试工具不可用

如果通过Chrome Dev工具的调试级别还不够,那么会为React Native创建其他具有更好功能的工具(例如断点)。最值得注意的是:

  • VisualStudio代码的扩展。允许在编辑器中设置断点和迭代代码

  • ,它具有与Chrome开发工具类似的界面,并允许在“源”选项卡中设置断点

在各自的存储库中提供了最新的安装说明和配置



您想调试什么?如果你的应用程序正在崩溃?输出不正确?您将受益于本机调试(Xcode或adb)或JS调试。@BaronVonKaneHoffen欢迎来到React Native世界!启用Chrome调试时,要执行firebase方法,不仅需要设备,还需要模拟器/模拟器。在我的例子中,结果是应用程序只是坐在那里,而什么也没发生。哦,情况变得更糟了;它有时起作用。喜欢它的工作,然后砰!停止工作,无代码更改。如果您真的关心这个开发平台,并希望看到它得到改进,那么您可能应该在react native Firebase Github站点上打开一个bug通知单。但是我不知道。是的,没错。我已经确定我正在进行调试构建,并且我在Chrome开发工具中看到了活动。问题是,Firebase函数(如从Firestore获取记录)在从Firestore运行时似乎不起作用。这对于进一步输入@BaronVonKaneHoffen是有用的。这些要调试的函数调用是用JavaScript编码的吗?是的。例如,我可以在App.js中使用
firebase.Firestore()初始化Firestore数据库
然后尝试执行查询,例如
wait result=db.collection('whatever').doc('123').get(),在设备上运行时工作正常。但是,如果启用了远程JS调试,它将永远不会完成。。。可能在JS环境之外的某个地方出错。我可以
console.log(结果)在下一行,任何东西都不会到达控制台。@BaronVonKaneHoffen我为内置调试器添加了两个很好的替代方案,它们也允许代码断点。”。让我知道这是否有用。啊,太好了!尝试了
react原生调试器
,它成功了!非常感谢:-D…其他人看到了吗:我是通过自制软件安装的,然后用
open”r打开的ndebugger://set-debugger-loc?host=localhost&port=8081“
,在设备上启用了“远程调试JS”,所有Firestore通信现在似乎都工作正常,并连接了调试器。