物理IOS/Android设备上的Firebase Firestore模拟器

物理IOS/Android设备上的Firebase Firestore模拟器,ios,firebase,google-cloud-firestore,expo,emulation,Ios,Firebase,Google Cloud Firestore,Expo,Emulation,好了,我已经做完所有的研究了 在我开发时,我正试图通过Expo应用程序让Firebase-Firestore数据库模拟器在我的物理IOS设备上工作 我可以让Localhost在浏览器中工作,让10.0.2.2:(8080)通过Android emulator工作。但是,我无法让我的物理IOS设备正常工作。我发现firebase无法在10秒内连接错误 尝试了本地主机,尝试了expo应用程序192.168中提供的ip。x.x尝试了我当前wifi位置中提供的ip地址,什么都没有 我已经对不同的配置做了

好了,我已经做完所有的研究了

在我开发时,我正试图通过Expo应用程序让Firebase-Firestore数据库模拟器在我的物理IOS设备上工作

我可以让Localhost在浏览器中工作,让10.0.2.2:(8080)通过Android emulator工作。但是,我无法让我的物理IOS设备正常工作。我发现firebase无法在10秒内连接错误

尝试了本地主机,尝试了expo应用程序192.168中提供的ip。x.x尝试了我当前wifi位置中提供的ip地址,什么都没有

我已经对不同的配置做了广泛的研究。我要找的人谁已经设法让它的工作,并知道他们的步骤。我是否缺少配置设置等

由于它在网络上工作,我不相信我有

我正在使用这段代码连接Android Emulator/Web浏览器

firebase.firestore()设置({ 实验或长期投票:是的, 主持人:“10.0.2.2:8084”
,ssl:false})

请不要在回答中猜测,只寻找那些复制了手头确切问题的答案的人


谢谢

在你的firebase.json中为你使用的每个模拟器设置一个主机参数“0.0.0.0”

下面是我用来连接带有真实iOS设备的仿真器的代码

firebase.json

{
  "emulators": {
    "auth": {
      "port": 9099,
      "host": "0.0.0.0"
    },
    "functions": {
      "port": 5001,
      "host": "0.0.0.0"
    },
    "firestore": {
      "port": 8080,
      "host": "0.0.0.0"
    },
    "database": {
      "port": 9000,
      "host": "0.0.0.0"
    },
    "ui": {
      "enabled": true
    }
  },
  "firestore": {
    "rules": "firestore.rules",
    "indexes": "firestore.indexes.json"
  },
  "database": {
    "rules": "database.rules.json"
  }
}
然后在客户端添加

realtimeDatabase.useEmulator(yourLocalIp, 9000);
firestore.useEmulator(yourLocalIp, 8080);
firebase.functions().useEmulator(yourLocalIp, 5001);     
auth.useEmulator('http://yourLocalIp:9099')

最后的答案。更新你的软件包。(我对自己很生气)

我花了无数个小时试图找出一个还没有解决方案的问题,因为它在未来的版本中出现了

因此,在升级到sdk 8.29之后,我有了Firebase javascript sdk 7.9,它在物理IOS设备上运行得非常好。我没有使用useEmulator,我使用的是这段代码

if(firebase.apps.length === 0){
       
    firebase.initializeApp(config)      
        
    firebase.firestore().settings({ 
         experimentalForceLongPolling: true,
         host:'192.168.X.XX:8089'         
         ,ssl:false
         })        

    } else {      
        firebase.app()
    }
导出默认firebase

设置方法对我来说非常有效,我不确定是否会发现不使用useEmulator的其他问题,或者这是否适用于不同类型的平台。我正在使用expo/React Native


感谢您的回复。

我没有useEmulator方法作为选项。我可能需要更新我的Firebase,目前我使用设置方法让它在Android仿真器中工作。你知道有没有一种方法可以通过设置方法来完成吗?我相信你的答案是正确的,但是对于那些已经拥有包含UseMulator的Firebase正确版本的人来说。谢谢。仅供参考Firebase 9.1.0版