Firebase Android 使用整理

Firebase Android 使用整理


最近在工作中新接触了Google在今年新推出的Firebase服务,发现目前论坛上的资料比较少,所以自己整理了一份关于Firebase的一些相关东西,目前在使用上还存在一些问题,希望通过这个平台这篇博客和大家一起探讨。
混了很久的论坛,终于鼓起勇气发了自己第一篇博客,如有纰漏请各位指出,大家一起交流学习,共同进步成长!

  • Firebase初步了解
  • Firebase基本功能
  • Firebase接入方式整理
  • Firebase使用上一些问题

Firebase初步了解

什么事Firebase?
Firebase成立于2011年,在被Google收购之前,Firebase是一个协助开发者快速构建App,能够提供行动应用专用开发平台及SDK的一款产品,简单的说大概就是一套集成后台服务工具。
在网上可以找到一些基础介绍,我也贴一些出来,详细的大家可以在网上搜索:
在今年的I/O大会上,谷歌发表了新版的Firebase,新的Firebase整并Google既有的云端服务与工具,扩大支援更全面的功能,涵盖开发、成长与营收三阶段,并整合分析工具,其分析工具专为App所设计,并以事件和使用者分析为主。在开发阶段所提供的后端服务,包括即时资料库(Realtime database)、身分验证(Authentication)、主机(Hosting)、储存(Storage)、云端讯息(Cloud Messaging)及远端配置(Remote Config)等后端服务,并提供Android测试实验室(Test Lab for Android),以及当机报告等管理App品质的服务。

以下是Firebase的官方链接,需要翻墙
Firebace官方网站

Firebase基本功能

我根据官方文档的介绍,整理了一下Firebase的基本功能,能翻墙的同学直接看官方文档就好了~

一、数据分析工具

Firebase 的核心是 Firebase Analytics,这是一项免费且无限制的分析解决方案。从单一信息中心查看用户行为和衡量行为特性,可以查看包括日活,留存,用户的地理位置分布,用户,设备信息等信息。
在Anlytics还提供了一系列其他分析,一下是一个demo的截图:
Firebase Analytics

二、开发

  1. 云消息传递(Firebase Cloud Messaging)
    可以通过后台服务向用户推送消息,对于即时通讯等用例,一条消息可以将最大 4KB 的负载传送至客户端应用。

  2. 身份验证(Firebase Authentication)
    可以使用 FirebaseUI 作为一种完整访客身份验证解决方案,实现支持电子邮件与密码、Facebook、Twitter、GitHub 和 Google Sign-In 的整套身份验证系统。

  3. 实时数据库(Firebase Realtime Database)
    云托管 NoSQL 数据库,数据为JSON形式,设备离线可以使用数据,具有同步功能,恢复链接时可以上传回服务器。

  4. 存储(Firebase Storage)
    Firebase Storage 由 Google Cloud Storage 提供支持,Firebase 应用提供安全的文件上传与下载。 可以使用它存储图片、音频、视频或其他用户生成的内容。

  5. 托管(Firebase Hosting)
    为开发者提供的生产级网络内容托管。利用 Hosting,仅需一条命令,即可快速简单地将网络应用和静态内容部署到全球内容交付网络

  6. 远程配置(Firebase Remote Config)
    可以通过该服务更改应用的外观和行为,无需用户下载应用更新。更新应用,无需部署新版本。

  7. 测试实验室(Firebase Test Lab for Android)
    Firebase Test Lab for Android 提供了基于云的基础结构,用于测试 Android 应用。 通过一次操作,可以跨越各种各样的设备和设备配置发起应用测试。 在 Firebase console 中,可通过项目获取测试结果,包括日志、视频和屏幕截图。

  8. 奔溃报告(Firebase Crash Reporting)
    根据频率和影响设定奔溃优先级,收集设备全面的奔溃信息,这个功能只需要接入firebase的Crash SDK,不需要添加其他的代码,他就可以自动收集app的奔溃信息,并上传到Firebase后台,图片如下:
    崩溃信息界面

三、增长

  1. 通知(Firebase Notifications)
    细分受众,轻松管理推送信息

  2. 索引(Firebase App Indexing)
    Firebase App Indexing(其前身为 Google App Indexing)可将应用纳入 Google 搜索。 如果当用户搜索相关内容时已安装应用,则他们可以直接从搜索结果中启动应用。 如果用户还未安装应用,则将在搜索结果中显示安装卡片。添加 App Indexing 推广 Google 搜索内的应用结果类型,并提供查询自动填充功能。

  3. 动态链接(Firebase Dynamic Links)
    Firebase Dynamic Links动态链接是指能够动态更改其行为以便在不同的平台上提供最佳体验的智能网址。无论用户是全新用户还是长期客户,动态链接都能指引用户完成应用安装流程结束并将用户引导至相关的内容。

  4. 邀请(Firebase Invites)
    Firebase Invites 是用于发送个性化电子邮件和短信分享应用

  5. 在线广告(Google AdWords)
    优化广告,促成安装,获取广告转化率的深入数据分析,有针对性地开展广告活动,使用 Firebase Analytics 目标设备吸引您的用户群

四、获利

AdMob by Google
AdMob by Google 是一种移动广告平台,借助该平台可从您的应用中获得可观的收入。将 AdMob 与 Firebase Analytics 相结合,不仅可得到更多的应用使用量数据,而且可以提升分析能力。

五、收费标准

它提供3个套餐,当然包括有免费的套餐集体看下面链接吧~
收费标准

Firebase接入方式整理

1.首先要登录你的Gmail,然后在 Firebase console 中创建一个项目。 接下来将你自己的安卓移动应用(或者你可以选择在官网下载一个示例工程)连接 Google 项目,点击 Import Google Project。

2.点击 Add Firebase to your Android app 并按设置步骤进行操作。

3.输入应用的包名称,输入应用使用的包名称十分重要。只有当将一个应用添加至 Firebase 项目时才能进行此设置,如下图,要填入的是 com.asura.test 。
应用包名

4.最后,需要下载一个 google-services.json 文件,同时将其放在项目的根目录下。

5.配置好项目之后,接下来要就需要对项目想使用的具体服务,添加SDK,具体如下:

首先,请向build.gradle 文件添加一条规则,以包含 Google 服务插件:

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

然后在您的模块 Gradle 文件(通常为 app/build.gradle)中,在文件底部添加 apply plugin 行,以启用 Gradle 插件:

apply plugin: 'com.android.application'
android {
    // ...
}
dependencies {
    // ...
    compile 'com.google.firebase:firebase-core:9.2.1'
}
    // ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

至此项目的接入方式就完成,Firebase的不同的服务对应了不同的依赖库,详细的资料可以在官方文档获取。

Firebase使用上一些问题

由于项目的需要,本人目前仅试用了Firebase的Anlytics和Creash的两大功能,其他功能还暂时没有研究,等后续研究过后再更新一些资料。

使用设备要求

对于安卓使用设备要求,官方是规定了移动设备必须要装有谷歌服务9.0或者以上的版本

关于引入的库

在官方文档上导入的库为
compile ‘com.google.firebase:firebase-core:9.0.0’
但是我下载了一个示例后发现,demo使用的都是 9.2.1 的版本,所以我也将项目改成了
compile ‘com.google.firebase:firebase-core:9.2.1’
原因呢,下面会解释
当然了,使用的包要同一一个版本,不然一个9.0.0和一个9.2.1,会引起
Process ‘command ‘C:\Program Files\Java\jdk1.8.0_31\bin\java.exe” finished with non-zero exit value 2的错误

编译报错

错误Error Launching activity
解决方法:在gradle中加上这句

android {
    ...
    defaultConfig {
        applicationId "com.asura.test"
    }
    ...
}

firebaseCrash 崩溃收集问题

1.当时引入奔溃收集服务的时候,接的还是9.0.0的库,在运用到没有谷歌服务的设备上时,程序会因为获取不到firebaseCrash的实例导致空指针报错
解决方法:将引入的库改为 9.2.1,可以解决崩溃问题(Ps:由于没有谷歌服务,所以设备的奔溃信息还是没有收集到的)

2.收集完崩溃信息后上传过程中报错,错误信息如下:
background_crash E/FirebaseCrashSenderServiceImpl: Error sending crash report: IOException while sending a crash report
解决方法:移动设备翻墙,上传就可以成功,因为没能找出错误原因,但是从这里可以猜测,要上传的奔溃服务器是需要翻墙才可以访问的。

文章目前就写到这里,后续还会继续补充其他在开发中遇到的问题。

使用Firebase应用内消息传递可以让你的Android应用实现实时通信和消息推送功能。下面是一些步骤来帮助你在Android应用上使用Firebase应用内消息传递: 1. 首先,在Firebase控制台中创建一个新的Firebase目,并在目设置中启用Firebase Cloud Messaging服务。 2. 在你的Android应用中,添加Firebase Core和Firebase Cloud Messaging依赖。你可以通过Gradle文件来添加这些依赖,例如: ``` implementation 'com.google.firebase:firebase-core:17.2.1' implementation 'com.google.firebase:firebase-messaging:20.0.0' ``` 3. 在你的AndroidManifest.xml文件中添加以下代码以注册Firebase Cloud Messaging服务: ``` <service android:name=".MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> ``` 4. 创建一个MyFirebaseMessagingService类并继承FirebaseMessagingService。在这个类中,你可以处理接收到的消息并执行相应的操作,例如: ``` public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { // 处理接收到的消息 String message = remoteMessage.getData().get("message"); // 执行相应的操作 } } ``` 5. 最后,在你的应用中发送消息,你可以使用Firebase Cloud Messaging API来发送消息,例如: ``` FirebaseMessaging.getInstance().send(new RemoteMessage.Builder("SENDER_ID" + "@gcm.googleapis.com") .setMessageId(Integer.toString(msgId.incrementAndGet())) .addData("message", "这是一条测试消息") .build()); ``` 以上是在Android应用上使用Firebase应用内消息传递的一些基本步骤,你可以根据你的需求进行相关的配置和定制化。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值