插件项目:未找到firebase\u core\u web

插件项目:未找到firebase\u core\u web,firebase,flutter,dart,google-cloud-firestore,firebase-authentication,Firebase,Flutter,Dart,Google Cloud Firestore,Firebase Authentication,我尝试将Android project连接到Firebase,但在pubsec.yaml中添加以下内容时出现此错误: firebase_auth: ^0.16.0 cloud_firestore: ^0.13.5 当我跑的时候,它不工作了 Plugin project :firebase_core_web not found. Please update settings.gradle. Plugin project :firebase_auth_web not found. Please u

我尝试将Android project连接到Firebase,但在pubsec.yaml中添加以下内容时出现此错误:

firebase_auth: ^0.16.0
cloud_firestore: ^0.13.5
当我跑的时候,它不工作了

Plugin project :firebase_core_web not found. Please update settings.gradle.
Plugin project :firebase_auth_web not found. Please update settings.gradle.
Plugin project :cloud_firestore_web not found. Please update settings.gradle.

在您的
android/app/build.gradle中是否有解决方案,请更新以下内容:

android {
    // ...
    defaultConfig {
        // ...
        minSdkVersion 16
    }
}
进入:


注意:

在Flatter中使用firebase时,需要使用
minSdkVersion 23

从:

默认情况下,Flatter支持Android SDK v16(Jelly Bean,2012年发布),但multidex并不真正适用于Jelly Bean(尽管这是可能的)。配置Jelly Bean使其工作超出了本代码实验室的范围,因此我们将把最低目标SDK版本从v16更改为v21(棒棒糖,2014年发布)

要更改最低目标SDK版本,请执行以下操作:

  • 打开android/app/build.gradle,然后找到显示MinsdkVersion16的行
  • 将该行更改为MinsdkVersion21
  • 保存文件

升级后,它应该可以正常工作当您创建任何新的颤振项目时,
settings.gradle
文件将提供给您。以下是
设置.gradle
文件的格式(默认文件无更改),仅供参考:


设置的解释
梯度

Gradle
是一个用于android项目的构建工具,就像
ant
maven
一样,它使用groovy语言或kotlin编写脚本。在这种情况下,上面的代码是使用
groovy
编写的,因为
groovy
jvm
语言,所以它可以使用
Java
库。因此,我们基本上会将项目添加到构建中(在groovy中,可以省略方法的括号)

这一行:

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
正在获取在计算机中创建的颤振项目的路径。供参考:

这一行:

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
将在flatter项目的根目录下创建一个名为
.flatter plugins
的空文件。然后是
插件。每个{name,path->
这基本上是一个迭代,将插件名称和插件路径添加到文件
。flatter_plugins
,如果在该文件中找不到插件,您将得到此问题中的错误

.flatter插件
文件:

# This is a generated file; do not edit or check into version control.
cloud_firestore=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.13.6/
cloud_firestore_web=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/cloud_firestore_web-0.1.1+2/
firebase_auth=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.16.1/
firebase_auth_web=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_auth_web-0.1.2/
firebase_core=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.4.4+3/
firebase_core_web=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_core_web-0.1.1+2/
firebase_database=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_database-3.1.5/
firebase_storage=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_storage-3.1.5/
#这是生成的文件;请勿编辑或签入版本控制。
cloud_firestore=/Users//.pub cache/hosted/pub.dartlang.org/cloud_firestore-0.13.6/
cloud\u firestore\u web=/Users//.pub cache/hosted/pub.dartlang.org/cloud\u firestore\u web-0.1.1+2/
firebase_auth=/Users/.pub cache/hosted/pub.dartlang.org/firebase_auth-0.16.1/
firebase_auth_web=/Users//.pub cache/hosted/pub.dartlang.org/firebase_auth_web-0.1.2/
firebase_core=/Users//.pub cache/hosted/pub.dartlang.org/firebase_core-0.4.4+3/
firebase_core_web=/Users//.pub cache/hosted/pub.dartlang.org/firebase_core_web-0.1.1+2/
firebase_数据库=/Users//.pub cache/hosted/pub.dartlang.org/firebase_数据库-3.1.5/
firebase_storage=/Users//.pub cache/hosted/pub.dartlang.org/firebase_storage-3.1.5/

将文件
设置更改为此

include ':app'

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    include ":$name"
    project(":$name").projectDir = pluginDirectory
}
请在颤振应用->安卓->设置.gradle中添加此项
只需将其添加到settings.gradle文件中即可-

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()

def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {

    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }

}

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    include ":$name"
    project(":$name").projectDir = pluginDirectory
}

除了彼得的回答之外 我把这一行放错地方了。正确的那一行是文件的底部


应用插件:“com.google.gms.google服务”
我的设置适用于以下版本。

公共规范yaml

firebase_认证:^0.14.0+5
云存储:^0.12.9+5

我还添加了(pubspec.yaml)来消除警告。
firebase_核心:^0.4.5
firebase_分析:^5.0.2

build.gradle(根目录)
classpath'com.google.gms:googleservices:4.3.3'

build.gradle(应用程序目录)
MinsdkVersion23
targetSdkVersion 28

然后我在build.gradle的底部添加了这个 应用插件:“com.google.gms.googleservices”

最后一件事是运行终端命令:
$flatter套餐获得

构建项目后-等待15秒,它将在Firebase控制台上显示一条消息:“祝贺您,您已成功将Firebase添加到应用程序中!”


这可能是一个依赖项版本不匹配。请确保您使用的是pubspec.yaml中所有最新版本的库

您可以从中引用最新版本的依赖项

只要做

明斯克版本21


我也犯了同样的错误:-

插件项目:找不到firebase\u core\u web。请更新settings.gradle。 插件项目:cloud\u fireenter code heres
enter code here
tore\u web找不到。请更新settings.gradle。 插件项目:firebas
在此处输入代码
e_auth_web未找到。请更新settings.gradle

我通过以下过程解决了这个问题:-


转到你的应用程序级gradle文件,查看targetSdkVersion,如果它有16个或更少版本,那么从这个链接更新到新的最新版本。这会很有帮助。

@GunJack你需要minsdkversion 21,因为Flatter中的firebase不适用于版本16,你可以在这里看到。。你所要做的就是创建一个新的Flatter项目,即设置。gradle在另一个答案中已经提供给你,当你创建一个新的颤振项目时,关于这段代码的解释将不胜感激。谢谢。谢谢你的详细解释,但我的设置。gradle对颤振sdk和其他东西有参考。我应该用你提供的代码覆盖它还是只是附加?Th非常感谢您对@peterhaddayes的详细解释。您能解释一下它为什么有效吗?@BugsHappen不更改此设置,但将其添加到
设置中。gradle
文件不要将此添加到默认设置的末尾
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()

def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {

    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }

}

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    include ":$name"
    project(":$name").projectDir = pluginDirectory
}