【问题标题】:How to integrate firebase in an Ionic project (android/iOS)?如何将 Firebase 集成到 Ionic 项目(android/iOS)中?
【发布时间】:2019-01-28 10:21:07
【问题描述】:

我正在阅读文章并测试使用 Firebase 在我的 Ionic 应用中实现分析和推送通知的方法。

我的 ionic 应用同时针对 android 和 ios 平台,那么我应该将 google-services.json firebase 文件放在哪里?如果我需要在 android 和 iOS 上使用 firebase,我是否必须在 firebase 中创建 2 个应用程序?

我正在阅读许多文章,其中一些说根文件夹,而一些提到将其放在应用程序文件夹中。有人说我们必须更新 config.xml 以包含以下内容:

<resource-file src="google-services.json" target="app\google-services.json" />

我还读到我们需要使用应用程序和项目级别的依赖项更新 gradle 文件。

我已将文件放在 platform/android/app 文件夹中,现在一切正常。

我只想知道使用 Ionic 和 Firebase 时的最佳做法是什么,我应该将文件放在哪里以及我必须进行哪些配置更改?:

  1. 对于 Ionic 安卓应用
  2. 对于 Ionic iOS 应用程序
  3. 适用于 Android 和 iOS 平台的 Ionic 应用程序

【问题讨论】:

    标签: firebase ionic-framework ionic3


    【解决方案1】:

    查看 firebase 插件的文档: https://github.com/arnesson/cordova-plugin-firebase

    对于 Android,您有 google-services.json 文件,对于 iOS,您有 GoogleService-Info.plist 文件。 Firebase 需要这些文件才能在 iOS 和 Android 上运行。您必须将这些文件放在与 config.xml 相同的级别。

    这个插件使用一个钩子(在准备之后)复制配置 文件到正确的位置,即对于 ios 的平台/ios/\/Resources 和对于 android 的平台/android。

    因此您不需要 config.xml 中的资源文件指令,因为它是自动复制的。

    您不需要编辑build.gradle 文件,但如果您安装了其他 google play 插件(如地图或 admob),则编译可能无法正常工作。

    如果您安装多个使用 谷歌播放服务。这是安装插件造成的 不同版本的 Google Play 服务库。这可以是 通过安装 cordova-android-play-services-gradle-release 解决。

    如果您的构建仍然失败,您可以尝试安装 科尔多瓦-android-firebase-gradle-release。欲了解更多信息,请阅读 以下评论关于锁定特定版本的播放 服务和火力基地。建议使用 + 而不是 15.+ 来 确保使用正确的版本。

    编辑:由于您使用的是 cordova-plugin-firebase-analytics 而不是 cordova-plugin-firebase,因此他们似乎没有实现任何挂钩来复制文件。您必须将这些指令放在 config.xml 中:

    <platform name="android">
      <resource-file src="google-services.json" target="app\google-services.json" />
      ...
    <platform name="ios">
      <resource-file src="GoogleService-Info.plist" />
      ...
    

    一定要安装cordova-support-google-services

    【讨论】:

    • 如果我将文件放在与 config.xml 相同的级别,那么在构建缺少 google-services.json 文件的项目时会出错!只有当我将它放在 ..\platform\android\app 下时,项目才能构建好。看起来将文件复制到正确位置的钩子仅在运行 PREPARE 时适用?而不是当我们使用“ionic cordova build android”时
    • 但是构建步骤包含一个准备,所以它应该被复制。然后,您可以硬拷贝它,或者只指定资源文件指令来自动拷贝它。您使用的是哪个版本的插件?
    • 我运行“ionic cordova plugin add cordova-plugin-firebase-analytics”;所以假设它是最新的包(1.0.1)。
    • 哦,不确定是否在分析中实现了相同的钩子。我拿的文档来自 firebase 插件。刚刚检查了分析文档,他们没有谈论类似的功能。很抱歉造成误解,您确实必须为 iOS 和 Android 指定资源文件指令:platforms/android/app for Android 和 platforms/ios/Resources for iOS
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 2013-06-01
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多