Firebase 无法在 Android Studio 模拟器上运行

问题描述 投票:0回答:9

我正在做一个学习项目,一切正常,但我将操作系统更改为win11,同时擦除了所有以前的数据。
现在,在使用任何类型的登录后,Firebase 都会停留在“正在加载”状态。实时数据库数据也不会显示。等待大约 5-10 个小时后,身份验证有时会连续工作(可以多次登录、注销,直到再次运行应用程序),但数据库永远不会。
当我使用物理设备时一切正常。没有 firebase 的应用程序在模拟器上运行良好。互联网连接正常。无法运行的示例应用程序:
https://github.com/firebase/quickstart-android

我有:

  1. 使用多个不同的模拟器(带有google play的模拟器)和不同的sdk
  2. 更改了 SHA1 和 google-servies.json
  3. 在设置 -> 外观和行为 -> SDK 工具中下载并激活 Google play 服务
  4. 重新安装Android Studio,再次安装win10
  5. 更新了 Google Play 服务版本
  6. 在不同的 Firebase 帐户上尝试了不同的项目
  7. Firebase 控制台中激活的登录方法
  8. 在网上搜索了几个小时并做了许多其他我现在都不记得的事情

我有时遇到的唯一错误是:
E/FirebaseInstanceId:绑定到服务失败
当我第一次使用新模拟器时出现此错误:
E/FirebaseMessaging:硬故障异常时主题同步或令牌检索失败:java.util.concurrent.ExecutionException:java.io.IOException:AUTHENTICATION_FAILED。不会重试该操作。
E/FirebaseInstanceId:主题同步或令牌检索因硬故障异常而失败:AUTHENTICATION_FAILED。不会重试该操作。
E/FA:缺少 google_app_id。 Firebase 分析已禁用。
E/FA:无法上传。应用程序测量已禁用

对我来说,似乎有什么东西正在阻止(或真正减慢)android studio 模拟器和 firebase 之间的连接。
我将非常感谢任何形式的帮助,这对我的学习非常重要。

android firebase firebase-authentication android-emulator
9个回答
19
投票

解决我问题的是从这个网站安装旧版本的 Android 模拟器:
https://developer.android.com/studio/emulator_archive
我使用 Android 模拟器 (31.3.10) Beta 1 并切换到 Android 模拟器 (30.9.5) 解决了问题。


11
投票

我认为这是模拟器......或者至少对我来说是这样。我正在使用版本 31.3.10 并遇到了同样的问题。应用程序无法连接到模拟器中的 Firebase 服务器。 Firebase 身份验证最终会起作用,但需要很长时间才能登录。 Firebase 仅使用本地数据。对 Firebase 的查询仅从缓存返回结果(无论如何缓存都是空的),我可以看到这一点(

QuerySnapshot.metadata.isFromCache
是正确的)。 尝试重新安装应用程序,删除模拟器映像并制作一个新映像,但没有任何效果。模拟器上的互联网接入很好,我可以浏览网页等。 唯一有效的方法是降级模拟器。我回到了 2010 年 2 月 31 日,因为我知道其中一个有效。您可以从 https://developer.android.com/studio/emulator_archive

获取旧版本

我真的希望他们尽快修复它,因为我花了一整天的时间才弄清楚到底是怎么回事。希望这对其他人有帮助。


9
投票

我也有同样的问题。它发生在几次更新之后:Windows 和 Android Studio。显然,这是模拟器(版本31.3.10)。

就我而言,问题的解决方案是在模拟器中禁用 Wi-Fi 并启用移动互联网。虽然实际上 Windows 中的连接保持不变。


3
投票

我在这里找到了解决方案。模拟器版本 31.3.10 中出现错误。将模拟器更改为30.2.9 https://youtu.be/qo3SbdbXFos


3
投票

我使用的模拟器版本类似于 31.3.10,并将其升级到 31.3.11。现在问题解决了。 降级也可以,但我喜欢升级。

下面我附上了截图:

https://user-images.githubusercontent.com/96950460/193184898-28e24140-8b12-4c80-8900-c56d4776619b.png


2
投票

问题似乎出在模拟器上。我最近更新了 android studio,我已经与 firebase 对话的代码在我没有编辑任何内容的情况下停止工作。

我没有恢复到旧版模拟器,而是转而使用物理设备,例如手机。

它立即修复了它。


0
投票

我对模拟器 31.3.12 也有同样的问题。应用程序启动后无法连接到任何 Firebase 服务。 7分钟后,多次重试,成功了。没有我这边的任何互动。

我正在使用 Firebase 远程配置和 Crashlytics。

enter image description here


0
投票

就我而言,解决方案是在 AndroidManifest.xml 中将 usesCleartextTraffic 设置为 true

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>

0
投票

这是我解决这个问题的方法。

  1. 打开飞行模式
  2. 关闭飞行模式
  3. 关闭WiFi
  4. 关闭移动数据
  5. 开启移动数据

希望能帮助解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.