Download pptx - 宅學習 Firebase

Transcript
Page 1: 宅學習 Firebase

Firebase介紹演講者:蔡維成

Page 2: 宅學習 Firebase

2

outline• 前情提要• 提供的服務• 範例練習

Page 3: 宅學習 Firebase

3

前情提要•Google 也強調了 Firebase 增加新的功能的同時也保有了之前的三大原則:•開發者容易上手,資源豐富。•支援跨平台( Android/iOS/Web apps )。•集成開發工具•宣傳影片•Web,android,IOS Quickstart

( 如要開發記得把 sdk 升到最新版,舊版不支援噢! )

Page 4: 宅學習 Firebase

4

前情提要•Firebase's primary product is a realtime database which provides an API that allows developers to store and sync data across multiple clients.

Page 5: 宅學習 Firebase

5

前情提要•介紹 NoSQL(Not only SQL)大致上分成四種,而每一家的 NoSQL 規定都不太一樣,所以無法互相支援。

─ Key-value Stores─ Document Databases(firebase)─ Graph Databases─ Column Family StoreNoSQL簡介

Page 6: 宅學習 Firebase

6

前情提要•Key-value Stores用 hash 表的概念來儲存,給一個 key 就回傳一個值,這個值可以不一致 ex: int , string , a document

Page 7: 宅學習 Firebase

7

前情提要•Document Databases

─ 通常以 JSON 的形式來儲存

Page 8: 宅學習 Firebase

8

前情提要•JSON線上網站•物件 {} 和陣列 [] ,某方面來說(不考慮資料損失),是可以互相轉換的

Page 9: 宅學習 Firebase

9

前情提要

Page 10: 宅學習 Firebase

10

前情提要

Page 11: 宅學習 Firebase

11

前情提要•Graph Databases他使資料庫與資料庫之間的關係更好連接了,擁有強大的擴張性,方便用於社交系統,關係越複雜越適合用。

Page 12: 宅學習 Firebase

12

前情提要•Column Family Store

─ 算是 Key-value Stores 的延伸版,適用於大量資料分佈於很多台主機的情況,一個 key 會對應到不同 column

Page 13: 宅學習 Firebase

13

前情提要RDBMS 與 NoSQL 比較 RDBMS NoSQL

資料一致性 是,並且需事情就定義 不一定,通常不一樣資料庫型態更改 困難,一旦定義更改需要耗

費大量成本相較容易,彈性比 SQL 好但遇到大更改可能要比 SQL 難

資料庫查詢能力 強,有 join 的功能 弱,對於複雜的查詢較弱重複性 較易整理,可通過正規化來

減輕負擔除非事前規定不然容易越積

越亂 ( 就像房間一樣 )

擴張 可以加大 CPU,RAM,SSD 加強處理能力,硬碟加大容量

可以加設多個伺服器處理大量流量

Page 14: 宅學習 Firebase

14

前情提要•所以 RDBMS 還是 NoSQL 哪個比較好?

不一定

Page 15: 宅學習 Firebase

15

提供的服務•分析( Analytics )•身分驗證( Authentication )•即時資料庫( Realtime database )•儲存( Storage )•代管主機( Hosting )•遠端配置( Remote Config )•Android 測試實驗室( Test Lab for Android )•當機報告( crash )

Page 16: 宅學習 Firebase

16

提供的服務•通知服務( Notifications )•動態連結( Dynamic Links )•廣告( AdMob )

Page 17: 宅學習 Firebase

17

分析( Analytics )•Firebase 以 mobile app analytics 為主所以想要用 web 的話就要用 Google Analytics

•網頁分析

Page 18: 宅學習 Firebase

18

身分驗證( Authentication )•可以直接用已存在帳號登入•ex: 用 google , facebook …… 等直接登入而且只要複製 code 就可以了

Page 19: 宅學習 Firebase

19

即時資料庫( Realtime database )•以 json 形式儲存•設計成簡單易用的 API•可以處理複雜的即時更新•有需要的話可以用他的 REST API 直接連到自己的伺服器

Page 20: 宅學習 Firebase

20

儲存( Storage )•可以儲存圖片 , 聲音 , 影片等等的檔案•( 當然有沒有付費儲存容量有差 )

Page 21: 宅學習 Firebase

21

代管主機( Hosting )•可以在自己的電腦 coding ,如果要更新網頁的話,只要一行指令就能把程式上傳到 firebase 的主機,不需要自己架伺服器

Page 22: 宅學習 Firebase

22

遠端配置( Remote Config )•如果只是想要修改一些參數,但是又不想讓使用者一直更新的話,可以在 firebase的控制台中設定,把在程式裡設定好的參數做修改,就能完成更新•還可以只針對特定族群來做更新,達成客製化的效果。

Page 23: 宅學習 Firebase

23

Android 測試實驗室( Test Lab for Android )•可以在雲端上幫你做 android 的 debug•需要 $_ $

Page 24: 宅學習 Firebase

24

當機報告( crash )•如果行動裝置遇到當機時,有使用此功能就會在控制台中顯示錯誤訊息,協助開發者了解發生了什麼事!

Page 25: 宅學習 Firebase

25

通知服務( Notifications )•想要通知使用者一些資訊的話,可以使用firebase 的功能,同樣的也可以只發給特定群族,針對性的發給需要的使用者。

Page 26: 宅學習 Firebase

26

動態連結( Dynamic Links )•可以針對不同的環境 (ios,android) 來顯示不同的連結,提供更好的使用體驗,如果沒有安裝應用程式的話,還可以引導使用者下載完繼續剛剛想要推薦的東西,讓使用體驗不中斷。

Page 27: 宅學習 Firebase

27

廣告( AdMob )•能在你的程式中加入廣告,來賺點錢~•但要注意的是,在開發期間只能使用testad 不然帳號可能會被鎖•廣告官網

Page 28: 宅學習 Firebase

28

練習一下•先辦個 firebase 的帳號吧~•新建一個專案 (地區只代表如果獲利要用什麼幣額顯示 )•會看到玲琅滿目的功能,接下來會使用

Authentication Realtime database Storage Hosting

Page 29: 宅學習 Firebase

29

練習一下•在想要的路徑下見一個新的資料夾•mkdir filename•cd filename

•npm install -g firebase-tools( 可以下 firebase 的指令 )

•firebase login ( 要求登入開發者的 google)•firebase init(啟動專案 )

Page 30: 宅學習 Firebase

30

練習一下•下載官方範例•在你想要的路徑下打進這行

( 不是剛剛的資料夾噢~ )

•打開剛剛下載好的範例•把 web-start裡面的東西複製到 filename public 的路徑裡

ex:public directory ./ 的話就放在根目錄

Page 31: 宅學習 Firebase

31

練習一下•可以針對多個專案加入 ( 可以加其他的專案 )•firebase use --add

•firebase deploy( 檔案上傳到 firebase)

•讓它運作! ( 也可以在 locat 端開啟 )•firebase serve

Page 32: 宅學習 Firebase

32

練習一下•先來初始我們的 web

•在專案首頁點擊 firebase 加入 web•複製到 index.html 最底下•來開通身份認證•點 auth->google->active

Page 33: 宅學習 Firebase

33

練習一下•在 main.js貼上

─ 初始 firebase 的 code─ Signin , Signout code─ Check 使用者是否登入過 code─ 登入者名字與頭像 code─ 讀取訊息─ 儲存訊息─ 儲存影像─ 顯示影像

Page 34: 宅學習 Firebase

34

練習一下•設定一下 Database 的權限•主要有四種

─ .write─ .read─ .validate─ .IndexOn( 可以排序,搭配 orderByValue())

Page 35: 宅學習 Firebase

35

練習一下•Write 也可以有判斷式

Page 36: 宅學習 Firebase

36

練習一下

Page 37: 宅學習 Firebase

37

練習一下

Page 38: 宅學習 Firebase

38

練習一下

Page 39: 宅學習 Firebase

39

練習一下

Page 40: 宅學習 Firebase

40

練習一下•不能重複定義

Page 41: 宅學習 Firebase

41

練習一下•要完整路徑才能用

Page 42: 宅學習 Firebase

42

練習一下•firebase.json 可以決定權限 ,public 哪些檔案與一些設定•如果想要忽略某些檔案不上傳可以加在 hosting裡

"ignore": [ "firebase.json", "database-rules.json", "storage.rules" ]

Page 43: 宅學習 Firebase

43

Android 範例•官方 android 的範例有以下功能─ Remote config─ Notifications─ AdMob─ Crash

Page 44: 宅學習 Firebase

44

Android 範例•Remote config裡限制訊息長度

─ Long friendly_msg_length = mFirebaseRemoteConfig.getLong(“friendly_msg_length”);

app 不用到 appstore , playstore 就可以隨時調整所需要的功用