从本地网络访问firebase emulator
我正在使用从本地网络访问firebase emulator,firebase,google-cloud-functions,firebase-tools,Firebase,Google Cloud Functions,Firebase Tools,我正在使用firebase模拟器:startfirebase命令在本地模拟函数。这在iOS模拟器上运行良好,但如果我使用同一网络中的真实android设备,这些功能是无法实现的。我可以像这样访问5001端口:locahost:5001,但不能像这样:192.168.x.x:5001 我的react native expo项目中有以下代码: export const functions = firebase.functions(); firebase.functions().useFunction
firebase模拟器:start
firebase命令在本地模拟函数。这在iOS模拟器上运行良好,但如果我使用同一网络中的真实android设备,这些功能是无法实现的。我可以像这样访问5001
端口:locahost:5001
,但不能像这样:192.168.x.x:5001
我的react native expo项目中有以下代码:
export const functions = firebase.functions();
firebase.functions().useFunctionsEmulator('http://192.168.x.x:5001');
但是,如果我将最后一行更改为:
firebase.functions().useFunctionsEmulator('http://localhost:5001');
是否可以使用类似于
firebase-serve
命令中的--host
选项启动仿真器?是否有其他解决方案?要在不同于默认值:localhost
的主机上侦听,只需检查--help
$firebase服务--帮助
用法:发球[选项]
为静态资产启动本地服务器
选项:
-p、 --端口要侦听的端口(默认值:5000)(默认值:5000)
-o、 --主机要侦听的主机(默认值:localhost)(默认值:localhost)
--仅服务于指定目标(有效目标为:函数、宿主)
--除服务于除指定目标以外的所有目标(有效目标为:函数、宿主)
-h、 --帮助输出使用信息
在这种情况下:
firebase.functions().useFunctionsEmulator('http://0.0.0.0:5001');
或
因为
0.0.0.0
意味着将您的firebase.json设置为
"emulators": {
"functions": {
"port": 5001,
"host": "0.0.0.0"
},
"firestore": {
"port": 8080
},
"database": {
"port": 9000,
"host": "0.0.0.0"
},
"hosting": {
"port": 5000
}
}
“0.0.0.0”主机告诉您的计算机同时为您的网络使用本地主机和本地ip
查看Android FirebaseDatabase library changelog(19.1.0版解释了这一新功能)以Conner的答案为基础-如果您在物理设备上进行测试,您将有更好的时间使用计算机的IP地址进行连接。您可以使用内置变量:
Constants.manifest.debuggerHost?.split(“:”).shift()
,而不是硬编码
在这里写了一个简短的解释:
可能重复的我不认为这是重复的
firebase serve
与firebase模拟器:start
不同。我仍然看不出这两个问题在主要目标上有什么区别,并且有一个很好的答案。@KingJulien你们都找到解决方案了吗?@KingJulien实际上我昨天就找到了哈哈。。。设置“模拟器”:{“函数”:{“端口”:5001,“主机”:“0.0.0.0”},“firestore”:{“端口”:8080},“数据库”:{“端口”:9000,“主机”:“0.0.0.0”},“主机”:{“端口”:5000}在我的回答中,firebase服务的原因是:“是否可以使用类似于firebase serve
命令中的--host
选项启动模拟器?”你就是那个人!谢谢!
"emulators": {
"functions": {
"port": 5001,
"host": "0.0.0.0"
},
"firestore": {
"port": 8080
},
"database": {
"port": 9000,
"host": "0.0.0.0"
},
"hosting": {
"port": 5000
}
}