只有 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 网络?