只有 Android 应用程序模块可以连接到 Firebase 在线项目

Posted

技术标签:

【中文标题】只有 Android 应用程序模块可以连接到 Firebase 在线项目【英文标题】:Only Android Application Modules can be connected to Firebase online projects 【发布时间】:2019-05-07 12:28:46 【问题描述】:

android Studio 3.2.1 中,我选择: 新建flutter Application,然后我进入 应用程序名称:sample_firebase_app 我选择下一步并在以下位置创建应用程序: D:\Flutter\SampleFirebaseApplication

Firebase 的新 Flutter 应用程序 公司名称:mycompanyname.com 我包含 kotlin 支持但不支持 Swift,它会生成 main.dart

class MyApp extends StatelessWidget 
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(

项目 ID:homeassistantmobile

在 Firebase 网站上,我创建了一个新项目: HomeAssistantMobile

然后我选择添加 Firebase 应用程序的选项 我从我的 build.gradle 添加应用程序 ID com.mycompanyname.samplefirebaseapp

我注册了应用程序 然后它为我提供了下载 google-services.json 的选项

firebase 网站显示该位置: 我的应用程序/应用程序 但我没有那个文件结构,所以我把它放进去 D:\Flutter\SampleFirebaseApplication\sample_firebase_app\android\app

firebase 站点随后建议将以下内容添加到项目级 build.gradle (/build.gradle):

buildscript 
  dependencies 
    // Add this line
    classpath 'com.google.gms:google-services:4.0.1'
  

但是没有这样的路径,所以我把它放进去 D:\Flutter\SampleFirebaseApplication\sample_firebase_app\android\build.gradle

firebase 网站然后建议将下面的文本放入 应用级build.gradle(//build.gradle):

dependencies 
  // Add this line
  implementation 'com.google.firebase:firebase-core:16.0.1'

...
// Add to the bottom of the file
apply plugin: 'com.google.gms.google-services'

但是有对应的路径所以我把它放进去

D:\Flutter\SampleFirebaseApplication\sample_firebase_app\android\app\build.gradle

然后建议通过以下方式进行同步:“最后,在 IDE 中显示的栏中按“立即同步”:” 没有出现这样的消息,所以我右键单击 gradle 文件并选择同步

我看到一个错误 断言失败:只允许在 write-action 内部进行写访问(参见 com.intellij.openapi.application.Application.runWriteAction())

但最终应用程序运行但firebase网页卡在: 运行您的应用以验证安装: 检查应用程序是否已与我们的服务器通信。您可能需要卸载并重新安装您的应用程序。

经过一生的等待,我点击:跳过这一步

我卸载并重试 结果一样

方法二 我选择Tools->firebase助手弹出 我选择:设置 Firebase 云消息传递 我受到了欢迎: Firebase Cloud Messaging 允许您从应用接收消息并将消息发送到服务器和其他客户端。本教程介绍了如何设置 FCM 并使您的应用能够接收通知。 我选择第一个选项: 连接到 Firebase 我受到了欢迎: 找不到 Android 应用程序模块。。创建新的 Android 应用程序模块或创建/导入不同的 Android Studio 项目。

我尝试了许多其他方法,遵循教程并在这方面花费了很多时间,但没有取得任何进展,欢迎提出我们的想法。

我已在常规 Android 应用程序中尝试过此操作,并且一切正常,因此该问题似乎仅与 Flutter 应用程序有关。 也许这就是信息: '找不到 Android 应用程序模块。。创建一个新的 Android 应用程序模块或创建/导入不同的 Android Studio 项目。 意思是,目前 Firebase 可能不适用于 Flutter Apps。

【问题讨论】:

嘿,你找到解决办法了吗?我也遇到同样的错误。 同样的问题,但使用 Xamaron ios 应用程序 不,最终放弃了 Flutter 【参考方案1】:

我在尝试通过 IDE 连接时遇到了同样的问题;像 Flutter/Dart 的许多其他边缘一样; Android Studio 中的 firebase 助手 UI 似乎是工具尚未赶上技术并提供相同“找不到 Android 应用程序模块”的情况之一。

但是,此过程有效: - 在 firebase 控制台上:创建/添加 firebase 到云项目 - 在 firebase 控制台上:添加 android 应用程序图标按钮 - 提供项目包名称、昵称、调试 SHA1 - 在 firebase 控制台上:下载生成的 google-services.json - 将 google-services.json 复制到 project_dir/android/app - 添加 google-services:4.2.0 对项目级 build.gradle 的 buildscript 的依赖 - 添加依赖实现'com.google.firebase:firebase-core:16.0.9'(不是最新的17.0.0,以避免dependency collision)到应用级build.gradle - 在应用级 build.gradle 底部添加了“应用插件:'com.google.gms.google-services'”(不确定位置是否重要?) - 导入 firebase_messaging:firebase_messaging.dart - 实例化并配置一个 FirebaseMessaging 对象

这适用于带有电话的设备,不能说它是否适用于仅 wifi;我注意到问题中使用的版本较旧,但这是可以预料的,我不知道这是否是约翰斯的祸根;然而,缺乏自动同步是一个危险信号;在我的主要颤振项目中通过 Android Studio 添加上述行后,我看到了在 Android Studio 中打开 build.gradles 的选项;我确实为此打开了一个新窗口,并使用我们都熟悉的弹出“同步”提示构建它们;我想知道通过颤动的 android studio 运行这一切是否吞下了一个有用的错误。

【讨论】:

以上是关于只有 Android 应用程序模块可以连接到 Firebase 在线项目的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式连接到 Android 中的特定 Wi-Fi 网络?

在 android 上使用 pyjnius 连接到 wifi 网络

Wi-fi无法连接到Android Studio模拟器

告诉蓝牙模块何时连接到 Arduino

Azure 通知适用于移动数据而不是 Wi-Fi

Wi-Fi 直连工作的距离范围