我正在尝试连接到一个在Mac(Catalina 10.15.7)上本地运行的firebase模拟器,并带有usb连接的iPhone6+(14.4.2)。url设置为:axios.defaults.baseURL=`http://$localhost:5001/firbase00/api
。react-native应用程序可以成功地连接到本地运行的firebase仿真器和运行在iOS模拟器上的实时服务器。当我试图通过运行react本机代码的usb设备连接到本地服务器时,我遇到了一个网络错误。我需要在一个真实的设备上进行测试,因为ios模拟器不允许推送消息传递,而这正是我正在编写/测试的内容。我试过http和httpS,试过重命名本地主机和共享互联网连接,但没有什么乐趣。我也彻底地寻找了一个解决办法,但没有找到一个可行的办法。概要,代码可以在ios模拟器上工作,本地firebase服务器和活动firebase服务器,连接usb的设备可以连接到活动服务器,但不能连接到本地服务器。与本地服务器的物理设备连接有关。
运行:
是的,您需要在iOS应用程序中允许HTTP流量(而不是默认允许的HTTPS),您将手动插入info.plist(或者使用XCode)中的以下行。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
docs->https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity
编辑:
我看到你使用的是FireBase--这是对我起作用的:
import functions from '@react-native-firebase/functions';
const address = Platform.select({
ios: 'localhost',
android:'192.168.0.39'
});
functions().useFunctionsEmulator(`http://${address}:5001`);
auth().useEmulator(`http://${address}:9099`);
// FIRESTORE IS NOT WORKING HTTP PREFIX ON LOCALHOST (SO FAR)
firestore().settings({
host: `${address}:8080`,
ssl: false,
persistence: false,
});
记住还要构建本机部分(刷新是不够的)。