只有 Android 应用程序模块才能连接到 Firebase 在线项目。

11
在Android Studio 3.2.1中,我选择:
新建Flutter应用程序,然后输入
应用程序名称: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网站显示其放置位置为:
My-Application/app,但我没有那样的文件结构,所以我将其放在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网页卡在了下面的位置: 运行您的应用程序以验证安装: 检查应用程序是否与我们的服务器通信。您可能需要卸载并重新安装应用程序。
等待了一生之后,我点击了:跳过此步骤
我卸载并重试 同样的结果
第二种方法: 我选择工具->firebase 弹出助手 我选择:设置Firebase云消息传递 我看到以下页面: Firebase Cloud Messaging允许您从应用程序接收和发送消息到服务器和其他客户端。本教程介绍如何设置FCM并使您的应用程序能够接收通知。 我选择第一个选项: 连接到Firebase 我看到: 找不到Android应用程序模块。只有Android应用程序模块才能连接到Firebase在线项目。创建新的Android应用程序模块或创建/导入不同的Android Studio项目。
我尝试了许多其他方法,并按照教程进行了操作,但是没有取得任何进展,欢迎提出任何建议或想法。
我在常规的Android应用程序中尝试了这个方法,一切正常,所以问题似乎仅与Flutter应用程序有关。 也许这就是这条消息的含义: “找不到Android应用程序模块。只有Android应用程序模块才能连接到Firebase在线项目。创建新的Android应用程序模块或创建/导入不同的Android Studio项目。” 也许目前Firebase无法与Flutter应用程序配合使用。

嘿,你找到任何解决方案了吗?我也遇到了同样的错误。 - jitendra purohit
同样的问题,但是针对Xamarin iOS应用程序。 - NickPR
2
不,最终放弃了Flutter。 - Johnos
1个回答

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中 - 在项目级build.gradle的buildscript中添加google-services:4.2.0依赖项 - 在应用程序级build.gradle中添加依赖项implementation 'com.google.firebase:firebase-core:16.0.9'(不是最新的17.0.0,以避免依赖项冲突) - 在应用程序级build.gradle底部添加“apply plugin:'com.google.gms.google-services'”(不确定位置是否重要?) - 导入firebase_messaging:firebase_messaging.dart - 实例化和配置FirebaseMessaging对象
这适用于具有电话功能的设备,不能确定对仅使用wifi的设备是否有效;我注意到问题中使用的版本较旧,但这是可以预料的,我不知道这是否是Johnos的问题;然而,缺乏自动同步是一个警示信号;在我的主要Flutter项目中通过Android Studio添加上述行后,我看到了一个选项来在Android Studio中打开build.gradles;我为此打开了一个新窗口,并使用我们都熟悉的弹出式“同步”提示构建了它们;我想知道是否有一个有用的错误被运行这个所有通过Flutter化的Android Studio所吞噬。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接