編輯:關於Android編程
最近在工作中新接觸了Google在今年新推出的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的基本功能,能翻牆的同學直接看官方文檔就好了~
Firebase 的核心是 Firebase Analytics,這是一項免費且無限制的分析解決方案。從單一信息中心查看用戶行為和衡量行為特性,可以查看包括日活,留存,用戶的地理位置分布,用戶,設備信息等信息。
在Anlytics還提供了一系列其他分析,一下是一個demo的截圖:
雲消息傳遞(Firebase Cloud Messaging)
可以通過後台服務向用戶推送消息,對於即時通訊等用例,一條消息可以將最大 4KB 的負載傳送至客戶端應用。
身份驗證(Firebase Authentication)
可以使用 FirebaseUI 作為一種完整訪客身份驗證解決方案,實現支持電子郵件與密碼、Facebook、Twitter、GitHub 和 Google Sign-In 的整套身份驗證系統。
實時數據庫(Firebase Realtime Database)
雲托管 NoSQL 數據庫,數據為JSON形式,設備離線可以使用數據,具有同步功能,恢復鏈接時可以上傳回服務器。
存儲(Firebase Storage)
Firebase Storage 由 Google Cloud Storage 提供支持,Firebase 應用提供安全的文件上傳與下載。 可以使用它存儲圖片、音頻、視頻或其他用戶生成的內容。
托管(Firebase Hosting)
為開發者提供的生產級網絡內容托管。利用 Hosting,僅需一條命令,即可快速簡單地將網絡應用和靜態內容部署到全球內容交付網絡
遠程配置(Firebase Remote Config)
可以通過該服務更改應用的外觀和行為,無需用戶下載應用更新。更新應用,無需部署新版本。
測試實驗室(Firebase Test Lab for Android)
Firebase Test Lab for Android 提供了基於雲的基礎結構,用於測試 Android 應用。 通過一次操作,可以跨越各種各樣的設備和設備配置發起應用測試。 在 Firebase console 中,可通過項目獲取測試結果,包括日志、視頻和屏幕截圖。
奔潰報告(Firebase Crash Reporting)
根據頻率和影響設定奔潰優先級,收集設備全面的奔潰信息,這個功能只需要接入firebase的Crash SDK,不需要添加其他的代碼,他就可以自動收集app的奔潰信息,並上傳到Firebase後台,圖片如下:
通知(Firebase Notifications)
細分受眾,輕松管理推送信息
索引(Firebase App Indexing)
Firebase App Indexing(其前身為 Google App Indexing)可將應用納入 Google 搜索。 如果當用戶搜索相關內容時已安裝應用,則他們可以直接從搜索結果中啟動應用。 如果用戶還未安裝應用,則將在搜索結果中顯示安裝卡片。添加 App Indexing 推廣 Google 搜索內的應用結果類型,並提供查詢自動填充功能。
動態鏈接(Firebase Dynamic Links)
Firebase Dynamic Links動態鏈接是指能夠動態更改其行為以便在不同的平台上提供最佳體驗的智能網址。無論用戶是全新用戶還是長期客戶,動態鏈接都能指引用戶完成應用安裝流程結束並將用戶引導至相關的內容。
邀請(Firebase Invites)
Firebase Invites 是用於發送個性化電子郵件和短信分享應用
在線廣告(Google AdWords)
優化廣告,促成安裝,獲取廣告轉化率的深入數據分析,有針對性地開展廣告活動,使用 Firebase Analytics 目標設備吸引您的用戶群
AdMob by Google
AdMob by Google 是一種移動廣告平台,借助該平台可從您的應用中獲得可觀的收入。將 AdMob 與 Firebase Analytics 相結合,不僅可得到更多的應用使用量數據,而且可以提升分析能力。
它提供3個套餐,當然包括有免費的套餐集體看下面鏈接吧~
收費標准
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,具體如下:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPsrXz8ijrMfrz/JidWlsZC5ncmFkbGUgzsS8/sztvNPSu8z1uebU8qOs0tSw/LqsIEdvb2dsZSC3/s7xsuW8/qO6PC9wPg0KPHByZSBjbGFzcz0="brush:java;"> 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的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" } ... }
1.當時引入奔潰收集服務的時候,接的還是9.0.0的庫,在運用到沒有谷歌服務的設備上時,程序會因為獲取不到firebaseCrash的實例導致空指針報錯
解決方法:將引入的庫改為 9.2.1,可以解決崩潰問題(Ps:由於沒有谷歌服務,所以設備的奔潰信息還是沒有收集到的)
2.收集完崩潰信息後上傳過程中報錯,錯誤信息如下:
background_crash E/FirebaseCrashSenderServiceImpl: Error sending crash report: IOException while sending a crash report
解決方法:移動設備翻牆,上傳就可以成功,因為沒能找出錯誤原因,但是從這裡可以猜測,要上傳的奔潰服務器是需要翻牆才可以訪問的。
文章目前就寫到這裡,後續還會繼續補充其他在開發中遇到的問題。
大家看到這個標題是不是覺得很詫異呢?什麼叫終極適配器,其實就是這種適配器是萬能的,所有需要使用適配器的組件,都可用這一個適配器就行。既然這樣,就來講講吧。效果:當然這是個
微信朋友圈上面的圖片封面,QQ空間說說上面的圖片封面都有下拉反彈的效果,這些都是使用滾動條實現的。下拉,當松開時候,反彈至原來的位置。下拉時候能看到背景圖片。那麼這裡簡單
在Android系統中,一個Activity對應一個應用程序窗口,任何一個Activity的啟動都是由AMS服務和應用程序進程相互配合來完成的。AMS服務統一調度系統中所
手機怎麼掃描二維碼?手機掃描二維碼方法介紹一、通過微信掃描二維碼打開微信,點擊微信右上角的+號,從彈出的菜單中選擇“掃一掃”;在彈出