Google Firebase接入

这里是FireBase官网,使用需要连入外网。

FireBase能做哪些事?

接入firebase,就类似于接入了集成国外第三方登录,友盟Push,友盟分析,阿里云存储,云控制等一系列功能。

接入流程:

1.创建项目


2.添加android应用


3.下载google-services配置文件,放入app根目录下。


4.在项目级build.gradle中配置:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.0"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"

        classpath 'com.google.gms:google-services:4.3.10'
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.1.1"))

    // Add the dependencies for the Crashlytics and Analytics libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-crashlytics")
    implementation("com.google.firebase:firebase-analytics-ktx")
    implementation 'com.google.firebase:firebase-messaging-ktx'
    implementation 'com.google.android.gms:play-services-auth:20.5.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

在模块下build.gradle中配置:

apply plugin: 'com.android.application'

// Add this line
apply plugin: 'com.google.gms.google-services'


dependencies {
  // Import the Firebase BoM
  implementation platform('com.google.firebase:firebase-bom:30.1.0')

  // Add the dependency for the Firebase SDK for Google Analytics
  // When using the BoM, don't specify versions in Firebase dependencies
  implementation 'com.google.firebase:firebase-analytics-ktx'
}

在settings.gradle中:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
        maven { url 'https://jitpack.io' }   //add line
    }
}

最后,Sync Now一下,BUILD SUCCESSFUL。

1.app埋点:Analytics

应用内数据上报,帮助分析用户在app内的行为

埋点上报:

var firebaseAnalytics: FirebaseAnalytics = Firebase.analytics
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.APP_OPEN, Bundle().apply {
                putString("appid", "1001")
                putLong("time", System.currentTimeMillis())
            })
2.云消息推送:Firebase Cloud Message

即:FCM,帮助app推送通知
获取消息推送token,然后可以去上报自己服务器,要获取成功token的前提是设备安装了GMS服务,以及外网连接。

    private fun getMessageToken() {
        FirebaseMessaging.getInstance().token.addOnCompleteListener {
            if (!it.isSuccessful) {
                Log.i("minfos", "获取token失败" + it.exception)
                return@addOnCompleteListener
            }

            //国内需要连接VPN方能获取成功
            val token = it.result
            Toast.makeText(applicationContext, "获取token" + token, Toast.LENGTH_LONG).show()
            Log.i("minfos", "获取到token:" + token)
        }
    }
3.身份验证:Authentication

方便的实现google登录,facebook登录,twitter登录,github登录,邮箱登录,电话登录以及自定义验证登录

    private fun signInClient() {
        val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestScopes(Scope(""))
            .requestIdToken("")
            .requestProfile()
            .requestServerAuthCode("", true)
            .requestEmail()
            .build();
        // Build a GoogleSignInClient with the options specified by gso.
        mGoogleSignInClient = GoogleSignIn.getClient(ctx, gso)
    }
4.实时数据库:Database和最新的Firestore

无需搭建服务器就能拥有一个实时的数据库,可以用来保存自己想要保存的任何数据。

5.云仓库:Cloud Storage

无需搭建服务器就能拥有一个云仓库,可以用来保存文件,如图片、音频、视频。不过免费版最多保存1个G的文件。

6.app崩溃报告:Firebase Crashlytics

自动记录应用内崩溃信息,只需简单的几步,就可以将Firebase Crashlytics添加到安卓工程中,然后Firebase Crashlytics就会自动的收集应用内崩溃信息,包括错误类型,代码定位等等,非常的方便实用

7.Firebase远程配置:Remote Config

相当于在服务器上设置几个key-value字段,我们在应用内可以请求这几个字段,通过value值设置我们的app。

是的,这两种方法一样可以实现远程配置。只是用Firebase远程配置实现的话,对app的性能影响最低,实现起来也更优雅。

8.A/B测试

通过Firebase远程配置的A/B测试,帮助了解哪种配置用户更喜欢。

9.动态链接:Dynamic Link

生成一个根据不同的场景响应不同行为的链接。

10.邀请:Firebase invites

邀请好友,基于Firebase动态链接。使用邀请功能让用户邀请好友下载或打开app更加的方便。

11.AdWords

帮助投放app,就是给钱让谷歌给你打广告。

可继续接入的功能

1.第三方登录
2.实时概览
3.日志搜集
4.用户分析
5.事件打点
6.消息推送

首次发送消息,需要验证FCM注册令牌,使用该方法可获取令牌值:

            if (!task.isSuccessful) {
                Log.i("minfo", "Fetching FCM registration token failed", task.exception)
                return@OnCompleteListener
            }

            // Get new FCM registration token
            val token = task.result

            Log.i("minfo", token)
        })

消息推送成功:


7.云控配置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容