无法连接到流星 android 设备上的托管或本地 mongo

can't connect to hosted or local mongo on meteor android-device

基本上,当 运行 在 meteor run android-device 上时,我无法让我的本地或托管 mongo 连接到我的应用程序。仅 meteor run,本地和托管都可以正常工作。我也无法在为测试 Play 商店而发布的应用程序上将其发送到 运行,但我想一旦我能够 运行 我在本地托管的 mongo 我应该能够将这些修复应用到已发布的版本。我 运行宁 ubuntu 18.04。


在我的 android 上进行本地测试时连接到我的本地 mongo phone:
所以根据我在网上阅读的内容,设备和计算机需要在同一个 wifi 网络上,我需要声明 --mobile-server。 我已经将 phone 的飞行模式连接到 wifi 网络并插入我的笔记本电脑进行测试。我不认为这是防火墙问题,因为我有其他硬件正在以这种方式连接工作。 这些是我尝试过但 none 有效的各种脚本。我完全不知所措!我是 运行 最新的流星。粗体字我也在模拟器上试过。

"android-device-local": "MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server 192.168.0.102" <-- 我的笔记本电脑在我的 wifi 网络上的 IP 地址

"android-device-local": "MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server 192.168.0.102:3000"

"android-device-local": "MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server locahost:3000"

“android-device-local”: “MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server locahost:27017”

“android-device-local”: “MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server 127.0.0.1”

“android-device-local”: “MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server 127.0.0.1:27017”

“android-device-local”: “MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server 127.0.0.1:3000”

“android-device-local”: “MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server 192.168.0.109” <-- ip address of my phone on my wifi network

“android-device-local”: “MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server 192.168.0.109:3000”

“android-device-local”: “MONGO_URL=mongodb://:@localhost:27017/dbName meteor run android-device --mobile-server localhost:12816” <-- chrome’s remote debugging url


正在连接到我托管的 mongo (mongodb.com)
我知道这里的 --mobile-server 是托管您的应用程序的在线服务器,但这是我感到困惑的地方……如果它托管在 Play 商店中,这到底是什么意思?我有一个个人网站(域在 google 上注册,托管在 aws amplify 上),我为此目的使用子域。

我已经完成了本指南 https://sergelobatch.com/beginners-guide-to-deploying-a-meteor-app-to-an-aws-server-with-meteor-up/ 并且能够通过 ec2 public ipv4 地址和我的网络浏览器的子域访问该应用程序,并且它正在按预期从数据库中提取数据。我已经允许我的 ec2 的 public ipv4 访问我的 mongodb 网络。 (旁注,这不是 https,这有关系吗?)

再次 运行我在本地尝试了这些,仍然没有成功:

“MONGO_URL=<mongodb.net_connection_string> meteor run android-device --mobile-server <ec2_public_ipv4>:80”

“MONGO_URL=<mongodb.net_connection_string> meteor run android-device --mobile-server <ec2_public_ipv4>:3000”

“MONGO_URL=<mongodb.net_connection_string> meteor run android-device --mobile-server http://<ec2_public_ipv4>:80”

^^^ 我已经用 ROOT_URL=sub.domain.com

尝试了以上所有方法

“MONGO_URL=<mongodb.net_connection_string> meteor run android-device --mobile-server sub.domain.com”

“MONGO_URL=<mongodb.net_connection_string> meteor run android-device --mobile-server sub.domain.com:80”


更新: 我确实看到我没有找到一些科尔多瓦资产。即使在手动添加这些包之后,这些包仍然存在。


I20200624-01:28:29.236(-7)? 06-24 01:28:27.889  6311  6393 W MeteorWebApp: Asset /cordova_plugins.js not found in bundle 7f92647871b290270da17a1a34abfb1f0d9c1cda:file:///android_asset/www/application, no parent bundle

I20200624-01:28:29.236(-7)? 06-24 01:28:27.914  6311  6401 W MeteorWebApp: Asset /plugins/cordova-plugin-splashscreen/www/splashscreen.js not found in bundle 7f92647871b290270da17a1a34abfb1f0d9c1cda:file:///android_asset/www/application, no parent bundle

I20200624-01:28:29.236(-7)? 06-24 01:28:27.914  6311  6404 W MeteorWebApp: Asset /plugins/cordova-plugin-meteor-webapp/www/webapp_local_server.js not found in bundle 7f92647871b290270da17a1a34abfb1f0d9c1cda:file:///android_asset/www/application, no parent bundle

I20200624-01:28:29.236(-7)? 06-24 01:28:27.915  6311  6393 W MeteorWebApp: Asset /plugins/cordova-plugin-statusbar/www/statusbar.js not found in bundle



手机-config.js

    App.info({
        //
    });
    
    App.icons({
      'android_mdpi': 'resources/icons/icon-48x48.png',
      'android_hdpi': 'resources/icons/icon-72x72.png',
      'android_xhdpi': 'resources/icons/icon-96x96.png',
      'android_xxhdpi': 'resources/icons/icon-148x148.png',
      'android_xxxhdpi': 'resources/icons/icon-192x192.png'
    });
    
    App.launchScreens({
      // Android
      'android_mdpi_portrait': 'resources/splash/splash-320x480.png',
      'android_mdpi_landscape': 'resources/splash/splash-480x320.png',
      'android_hdpi_portrait': 'resources/splash/splash-480x800.png',
      'android_hdpi_landscape': 'resources/splash/splash-800x480.png',
      'android_xhdpi_portrait': 'resources/splash/splash-720x1280.png',
      'android_xhdpi_landscape': 'resources/splash/splash-1280x720.png'
    });
    
    App.accessRule("*");
    App.accessRule("http://")
    App.accessRule("https://")
    App.accessRule("http://localhost:*")
    App.accessRule("http://127.0.0.1:*")
    App.accessRule("http://127.0.0.1")
    App.accessRule('http://localhost:3000/*');
    App.accessRule('http://192.168.1.109:3000/*');
    App.accessRule('http://192.168.1.102:3000/*');
    App.accessRule('http://<subdomain>.<domain>.com/*');
    App.accessRule('http://localhost:3000/*');
    App.accessRule('http://<ec2 public ipv4>/*');
    App.accessRule('http://<ec2 public ipv4>:*');

供将来参考:修复是通过 https://docs.meteor.com/packages/autoupdate.html 和 运行 dev 添加自动更新和必要的配置,使用标志 --mobile server <ec2-public-ipv4>:80 和 运行 build 使用 --server <ec2-public-ipv4>:80