android - 为什么我们需要在 Firebase SDK 的底部应用 google-services 插件?

标签 android gradle firebase

已编辑

作为@doug-stevenson tells us in his answer ,Firebase 依赖项声明不必再位于 build.gradle 的底部。


关于Firebase SDK setup page ,它说,

apply plugin: 'com.android.application'

android {
    // ...
}

dependencies {
  // ...
  compile 'com.google.firebase:firebase-core:9.0.2'
}

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

这是为什么呢?顺序重要吗?

最佳答案

更新:使用最新版本的播放服务插件,不再需要在 build.gradle 底部应用它。


它与插件帮助管理依赖项的方式以及 Gradle 用于构建项目的事件顺序有关。

如果您的项目中不存在该插件,该插件实际上会添加对 firebase-core 的依赖。它还将检查 Firebase 和 Play 服务依赖项的版本。然而,为了使其在不与其他插件发生冲突的情况下执行所有这些操作,Google 服务插件必须在项目依赖项已定义之后针对项目运行。因此,在依赖 block 之后(通常在文件底部)应用插件使这一切成为可能。

重要的是要知道,如果插件在顶部,某些项目可能会遇到版本冲突问题。您可以通过将其添加到底部来避免这些问题。

关于android - 为什么我们需要在 Firebase SDK 的底部应用 google-services 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37994514/

相关文章:

firebase - 我应该将 firebase api key 隐藏到后端吗?不是因为数据安全,而是项目克隆问题

android - 使用 Osmdroid 捏合缩放

android - Cordova - 将文件保存到存储

android - com.android.dex.DexException : Multiple dex files define Ledu/hawhamburg/vuforia/BuildConfig;

gradle - Android的Gradle插件未创建源代码文件夹

Firebase 安全规则限制字符串中的某些字符

java - 如何将 jchararray 作为参数发送给 C 函数

android - 如何打开图库中的图像?

gradle - 变量在不应该为只读时为只读

javascript - Firebase - Web - 在没有可用电子邮件的情况下验证帐户