Firebase là gì? Ứng dụng của Firebase trong IOT

firebase la gi

Firebase là một cloud platform rất mạnh mẽ của google, nó là phần không thể thiếu khi làm các ứng dụng di động, ngoài ra có thể ứng dụng trong lập trình IOT. Vậy chúng ta sẽ cùng tìm hiểu về nó nhé!

Sơ lược về Firebase

Firebase là gì ?

Firebase là một platform do Google cung cấp, nhằm hỗ trợ việc tạo ra các Web App , Mobile App một cách nhanh chóng. Họ cung cấp rất nhiều công cụ và dịch vụ tiện ích để phát triển những ứng dụng chất lượng. Với việc sử dụng Firebase, một developer có thể tập trung vào việc phát triển ứng dụng mà không cần quá lo lắng về việc sản phẩm hoạt động như thế nào ở phía Backend. (Backend ở đây chỉ ra việc xử lý và lưu trữ dữ liệu trong service, ở vùng “phía sau” mà người dùng không thể thấy được)

Firebase chính là một trong những BaaS (Backend as a service). Hướng đến đối tượng chủ yếu là mobile nên thường được gọi là MbaaS.

Tổng quan Firebase

Firebase bao gồm các API đơn giản và mạnh mẽ mà không cần tới Backend hay Server vì nó hoạt động trên nền tảng đám mây – cloud đi kèm là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Nhờ đó giúp tăng số lượng người dùng và thu lại nhiều lợi nhuận hơn.

Nổi bật nhất là khả năng đơn giản hóa các thao tác với cơ sở dữ liệu. Với Firebase, ta có thể tạo ra những ứng dụng real-time như App Chat, IoT App, cùng nhiều tính năng như xác thực người dùng, Cloud Messaging,… vì vậy nó có thể thay thế phần Backend của một Application.

Với tính đa năng, nó hỗ trợ cả 2 nền tảng Android và IOS và tính bảo mật tốt đến từ Google, nên khá nhiều Developer chọn Firebase làm nền tảng đầu tiên để xây dựng ứng dụng cho hàng triệu ngươi dùng trên toàn thế giới.

Các dịch vụ của Firebase hầu như là miễn phí nhưng những gì nó mang lại vô cùng hữu ích. Nhanh chóng, đơn giản và hiểu người dùng. Đối với dự án phát triển phần mềm vừa và nhỏ thì Firebase là lựa chọn tối ưu. Tuy nhiên, một số tiện ích nâng cao ta cần phải chi trả khoản phí nâng cấp và so với việc xây dựng Backend truyền thống thì nó còn khá đắt đỏ. Do đó tùy vào nhu cầu ta có thể lựa chọn sử dụng Firebase sao cho hợp lý.

Các Services của Firebase

Google đã phát triển rất nhiều tính năng hữu ích trên nền tảng Firebase của họ. Những dịch vụ được chia thành 2 nhóm chính tùy theo nhu cầu sử dụng của nhà phát triển, cụ thể như sau:

Firebase Develop & Test Your App

Đây là nhóm công cụ dành cho nhà phát triển ứng dụng ở mức tối giản nhằm giúp họ có thể kiểm tra các chức năng của sản phẩm. Bao gồm

Firebase Realtime Daabase

Ta có thể hiểu đây chính là một cơ sở dữ liệu dạng NoSQL (tức không theo cấu trúc bảng), dữ liệu được lưu và đồng bộ trên đám mây. Tất cả dữ liệu sẽ được đồng bộ trên tất cả clients trong thời gian thực, khả dụng ngay cả khi ứng dụng đang offline. Firebase Realtime Database có hỗ trợ cho Android, IOS, Web, C++, Unity và Xamarin. Các client chia sẻ một thể hiện Realtime Database và tự động tiếp nhận các thay đổi với dữ liệu mới nhất, do đó người dùng có thể lưu trữ và lấy dữ liệu từ máy chủ rất dễ dàng.

Firebase Realtime Database thường kết hợp với Authentication Firebase để tạo ra các quy tắc bảo mật, quyền đọc và ghi dữ liệu.

Đây chính là một cơ sở dữ liệu NoQuery, do đó nó có các tối ưu hóa chức năng so với cơ sở dữ liệu quan hệ. Cả một cơ sở dữ liệu là một cây Json lớn, với độ trễ thấp, Firebase Realtime Database cho phép ta xây dựng các ứng dụng cần độ realtime như app chat, game online, hay các thiết bị IOT.

Các tính chất chính của Realtime Database:

  • Realtime: cơ sở dữ liệu sẽ được đồng bộ mỗi khi dữ liệu có sự thay đổi, mọi thiết bị được kết nối sẽ nhận được thay đổi trong vài mili giây
  • Offline: khi người dùng ngoại tuyến, dữ liệu sẽ được lưu trên bộ nhớ cache của thiết bị và tự động đồng bộ khi họ trực tuyến.
  • Accesible from Client Devices: Firebase Realtime Database có thể được truy cập từ một thiết bị mobile hoặc trình duyệt web. Nó không cần một ứng dụng server nào, tính bảo mật và xác thực có thể thiết lập thông qua các Rule bảo mật của Firebase Realtime Database và các Rule được thực thi khi dữ liệu được đọc và ghi.
Firebase Realtime Database
Firebase Realtime Database

Crashlytics

  • Firebase Crashlytics là trình báo cáo sự cố theo thời gian thực, vừa gọn nhẹ vừa giúp ta dễ dàng quản lý các vấn đề về độ ổn định trong ứng dụng của mình.
  • Services này có khả năng nhóm các sự cố một cách thông minh và làm nổi bật các tình huống dẫn đến sự cố đó, vì vậy nó ta tiết kiệm thời gian khắc phục sự cố.
Firebase Crashlytics
Firebase Crashlytics

Cloud Firestore

  • Services này là cơ sở dữ liệu mới của Firebase phát triển dành cho ứng dụng di động. Nó là sự kế thừa của Realtime Database với mô hình dữ liệu mới và trực quan hơn. Điểm vượt trội so với người tiền nhiệm là sự phong phú, tốc độ và khả năng mở rộng.
  • Tương tự như phiên bản đi trước của nó là Firebase Realtime Database, nó giúp dữ liệu của ta đồng bộ hóa trên các ứng dụng client thông qua việc đăng ký realtime và cung cấp hỗ trợ ngoại tuyến cho mobile app và web.
  • Cloud Firestore cũng cung cấp tích hợp với các sản phẩm khác của Fireabase và Google Cloud Platform, bao gồm cả Cloud Functions
  • Cloud Firestore cũng là một cơ sở dữ liệu NoQuery được lưu trữ trên đám mây mà các ứng dụng IOS, Android, Web có thể truy cập trực tiếp thông qua SDK. Cloud Firestore cũng có sẵn trong Node.js, Java, Python và Go SDKs, REST và RPC APIs.
  • Do tổ chức theo mô hình dữ liệu NoQuery nên dữ liệu lưu trong các document ánh xạ tới các giá trị và các document thì được lưu trong các collection đợi ta thực hiện truy vấn.
  • Ta cũng có thể kết hợp Authentication với Cloud Firestore để bảo vệ quyền truy cập vào dữ liệu.
Cloud Firestore
Cloud Firestore

** Các tính chất của Cloud Firestore:

  • Tính linh hoạt: Cloud Firestore hỗ trợ các cấu trúc dữ liệu linh hoạt, phân cấp dữ liệu, lưu trữ dữ liệu vào các document và được tổ chức thành các collection. Trong các document có thể chứa các đối tượng phức tạp.
  • Truy vấn tượng trưng: ta có thể sử dụng các truy vấn để truy xuất các document riêng lẻ hoặc để truy xuất tất cả các document trong collection khớp với các tham số truy vấn của ta. Các truy vấn có thể bao gồm nhiều bộ lọc, kết hợp giữa bộ lọc và sắp xếp.
  • Realtime: tương tự như Firebase Realtime Database, nó cũng có khả năng đồng bộ dữ liệu và cập nhật dữ liệu trên mọi thiết bị được kết nối. Ngoài ra Firestore còn được thiết kế để thực hiện các truy vấn tìm nạp một lần.
  • Offline: tương tự Firebase Realtime Database.
  • Khả năng mở rộng: được trang bị từ Google Cloud Platform thiết kế để sử dụng cơ sở dữ liệu khó khăn nhất từ các ứng dụng lớn trên thế giới.

** Lựa chọn Firebase Realtime Database hay Cloud Firestore ?

  • Cả 2 đều có những lợi ích nhất định, và có những điểm khác nhau để người dùng dựa vào đó lựa chọn để phát triển dự án của mình.
  • khi ta mong muốn tạo ra truy vấn mới, quy tắc bảo mật mạnh mẽ hơn và hiệu suất được cải thiện đi kèm một số tính năng nâng cao khác thì ta nên chọn Cloud Firestore. Ngoài ra ta cũng có thể sử dụng kết hợp cả 2 cơ sở dữ liệu cùng nhau trong một ứng dụng hoặc dự án tùy theo yêu cầu và mục đích phát triển.
Cloud Firestore vs Realtime Database
Cloud Firestore vs Realtime Database

Authentication

  • Authentication là một phần không thể thiếu trong việc làm ứng dụng có web server làm hệ thống back-end. Trong thời buổi hiện tại, ngoài việc tạo trang sign up để người dùng đăng ký tài khoản trực tiếp trên server của ta, thì ta nên hỗ trợ thêm việc sign in qua các nhà cung cấp authentication khác, chẳng hạn như Google, Facebook hoặc Twitter. Việc tự xây dựng hệ thống đăng nhập không phải khó, tuy nhiên vấn đề bảo trì và bảo mật sẽ gây rất nhiều khó khăn trong quá trình phát triển. Với sự lớn mạnh của mình, Firebase team at Google cung cấp cho chúng ta một giải pháp rất dễ dàng và an toàn, đó chính là Firebase Authentication.
  • Firebase Authentication hay còn gọi là xác thực Firebase, nó cung cấp dịch vụ phụ trợ cho developers, SDK dễ sử dụng và thư viện UI được tạo sẵn để xác thực người dùng với ứng dụng của chúng ta. Nó hỗ trợ xác thực bằng mật khẩu, số điện thoại, các nhà

Firebase Authentication

Cloud Functions

  • Với Firebase, khi ta muốn lấy dữ liệu thì ta cần phải viết các câu truy vấn trực tiếp từ client. Điều này có thể vô tình để lộ một số thông tin nhạy cảm. Để khắc phục vấn đề đó, Cloud Function đã ra đời.
  • Cloud Function Firebase cho phép chúng ta viết những câu truy vấn database lưu trữ trên cloud. Tức là ta có thể chạy code back-end tự động trigger các event được kích hoạt bởi tính năng của Firebase và HTTPS request. Code của chúng ta được lưu trữ trong đám mây của Google và chạy trong môi trường được quản lý, nên ta không cần quản lý và mở rộng các máy chủ.

VD: Khi chúng ta upload một tấm ảnh lên Google Storage thì Cloud Functions sẽ tự động trigger sự kiện đó để xử lý một tác vụ nào đó, chẳng hạn như rename ảnh …

  • Các khả năng chính của Cloud Function Firebase:
  • Không cần bảo trì: Firebase tự động tăng quy mô tài nguyên máy tính để phù hợp với các patterns sử dụng với người dùng của chúng ta
  • Giữ logic của chúng ta được riêng tư và an toàn: Các Cloud Functions được cách ly hoàn toàn với client, vì vậy ta có thể chắc chắn rằng nó là riêng tư và luôn thực hiện chính xác những gì ta muốn.
  • Phản hồi sự kiện: các functions ta viết có thể phản hồi các sự kiện do các features Firebase và Google Cloud tạo ra
Firebase Cloud Functions
Firebase Cloud Functions

Cloud Storage

  • Đây là service được xây dựng cho mục đích lưu trữ và quản lý các nội dung mà người dùng ứng dụng tạo ra như ảnh, videos hay dữ liệu dạng file. Được coi là dịch vụ lưu trữ tĩnh hoặc có thể hiểu đơn giản Firebase Cloud Storage chính là không gian lưu trữ dữ liệu và dữ liệu ở đây không có giới hạn nào cả. Nó phục vụ cho hoạt động lập trình, làm nền tảng cho chúng ta xây dựng sản phẩm phần mềm trên đó, trên thực tế service này giống như không gian lưu trữ trên Web Host của chúng ta.
  • Firebase Storage có nhiều lợi thế và ưu điểm:
  • Robust: Firebase Storage thực hiện việc upload và download không phụ thuộc vào chất lượng đường truyền mạng, hơn thế nữa các quá trình đó có thể bắt đầu lại khi bị tạm dừng giúp tiết kiệm thời gian và băng thông.
  • Secure: Được tích hợp Firebase Authentication cho việc bảo mật nên dễ dàng quản lý quyền truy cập vào các files.
  • Scalable: Firebase Storage được xây dựng trên nền tảng Google Cloud Platform do đó khả năng mở rộng có thể lên đến hàng Petabyte dữ liệu.
Firebase Storage
Firebase Storage

Hosting

  • Đầu tiên ta hiểu đơn giản Hosting là không gian lưu trữ được chia nhỏ từ server giúp ta đăng tải dữ liệu và xuất bản website hoặc ứng dụng trên internet. Khi sử dụng hệ thống hosting, ta đặt lên server của nhà cung cấp các tệp dữ liệu cần thiết để website hay ứng dụng online của ta có thể chạy. Còn những nhà cung cấp dịch vụ hosting chịu trách nhiệm giữ các server hoạt động liên tục và Firebase Hosting là cách thức cung cấp hosting của Firebase đến người dùng.
  • Về bản chất, dịch vụ này hoạt động dựa trên sự giúp đỡ của CDN nhằm tối ưu hóa quá trình phân chia dữ liệu đến người dùng thực và cung cấp hosting.
Firebase Hosting
Firebase Hosting

Test Lab for Android

  • Mục đích của các công cụ và dịch vụ kiểm thử di động dựa trên điện toán đám mây là cung cấp khả năng chạy các thiết bị trên nhiều hệ thống hoặc mạng thông qua Internet, nơi các ứng dụng có thể được kiểm tra, cập nhật và quản lý.
  • Firebase Test Lab trước đây được gọi là Google Cloud Test Lab được vận dụng để test app trên nền tảng đám mây
  • Chức năng chính: Firebase Test Lab dành cho Android cung cấp cơ sở hạ tầng dựa trên đám mây để kiểm thử các ứng dụng Android. Với một thao tác, ta có thể bắt đầu kiểm thử ứng dụng của mình trên nhiều thiết bị và cấu hình thiết bị khác nhau
Test Lab
Test Lab

Performance Monitoring

  • Là một service có khả năng chẩn đoán các vấn đề xảy ra với hiệu suất của ứng dụng. Sử dụng dấu vết để theo dõi hiệu suất của các phần cụ thể trong ứng dụng của chúng ta và xem chế độ xem tổng hợp trong bảng điều khiển Firebase. Luôn cập nhật thời gian khởi động của ứng dụng và theo dõi các yêu cầu HTTP mà không cần viết bất kỳ mã nào.
Performance Monitoring
Performance Monitoring

Firebase Grow & Engage Your Audience

Đây là nhóm công cụ có thể phân tích dữ liệu nhằm tối ưu hóa và nâng cao trải nghiệm của người dùng. Bao gồm:

Google Analytics

  • Muốn biết một website có đang hoạt động tốt hay không, ta cần tiến hành phân tích đo lường dưới sự hỗ trợ của những công cụ đắc lực như Google Analytics. Đây chính là công cụ phân tích website phổ biến được cung cấp miễn phí bởi Google giúp các quản trị web có cái nhìn sâu sắc về hiệu suất của trang web qua các chức năng thống kê mà nó cung cấp.
  • Nó hoạt động theo quá trình:
  • Data Collection – Thu thập dữ liệu
  • Configuration – Chuyển đổi dữ liệu
  • Processing – Lựa chọn chỉ số muốn theo dõi
  • Reporting – Báo cáo
  • Những tính năng hữu ích:
  • Phân tích dữ liệu thông minh
  • Đa dạng các loại báo cáo
  • Cá nhân hóa dữ liệu
  • Thu thập và quản lý dữ liệu
  • Xử lý dữ liệu
  • Tích hợp các công cụ của Google
Analytics
Analytics

Cloud Messaging

  • Firebase được xây dựng với tính năng nguyên thủy là trò chuyện. Bởi thế Firebase cloud messaging (FCM) là tính năng cơ bản nhất của nền tảng này, nó cho phép người dùng xây dựng ứng dụng chat và đẩy thông báo tới nhiều thiết bị khác nhau như web, Android, iOS

cloud messaging

Predictions

  • Firebase Predictions là công cụ áp dụng deep learning máy học với dữ liệu phân tích của ta để tạo các nhóm người dùng năng động dựa trên hành vi dự đoán. Các nhóm người dùng này có thể được sử dụng để nhắm mục tiêu trong các sản phẩm khác như thông báo, Cấu hình từ xa và nhiều hơn nữa.

predictions

Firebase Dynamic Links

  • Sử dụng Liên kết động để cung cấp trải nghiệm người dùng tùy chỉnh cho iOS, Android và web. Ta có thể sử dụng chúng để hỗ trợ web di động để thúc đẩy chuyển đổi ứng dụng gốc, người dùng chia sẻ người dùng, các chiến dịch xã hội và tiếp thị và hơn thế nữa. Dynamic Links cung cấp cho ta các thuộc tính ta cần để hiểu rõ hơn về tăng trưởng di động của chúng ta. Đây là dịch vụ thay thế goo.gl của Google.
Dynamic Links
Dynamic Links

Remote Config

  • Là một phần của service Firebase, Remote Config là service cloud với mục đích nhằm giúp đơn giản quá trình phát triển ứng dụng mobile và quá trình testing ứng dụng.
  • Tính năng chính:
  • Nhanh chóng triển khai các thay đổi đối với cơ sở người dùng ứng dụng của ta
  • Tùy chỉnh ứng dụng của ta cho các phân đoạn của cơ sở người dùng của ta
  • Chạy thử nghiệm A / B để cải thiện ứng dụng của ta
Remote Config
Remote Config

Invites

  • Là công cụ cho phép người dùng chia sẻ mã giới thiệu, nội dung yêu thích trên ứng dụng qua email và SMS. Dịch vụ này kết hợp với Google Analytics for Firebase để ta biết thời điểm người dùng mở hay cài đặt ứng dụng qua lời mời.

Invites

App Indexing

  • Firebase App Indexing là chức năng hiển thị content trong ứng dụng trong kết quả tìm kiếm Google. Với user đã cài đặt sẵn ứng dụng trên thiết bị của mình, khi user chọn kết quả tìm kiếm có chứa content trong ứng dụng thì application sẽ được khởi động.
  • Các chức năng:
  • Search results
  • Installs
  • Autocompletions
  • Assistant:
  • Ad targeting:
app index
app index

Ưu điểm và nhược điểm của Firebase

10 ưu điểm nổi bật của Firebase

  • Tạo tài khoản và dễ sử dụng: cho phép người dùng đăng nhập bằng tải khoản Google
  • Tốc độ phát triển nhanh: giảm thiểu những khó khăn từ frontend
  • Nhiều dịch vụ trong một nền tảng: có 2 tùy chọn cơ sở dữ liệu là Firestore và Real-time Database thêm vào đó Firebse còn cho phép lưu trữ dữ liệu trên Cloud Media và tích hợp Cloud Functions
  • Được cung cấp bởi Google: nhận được nhiều sự hỗ trợ từ bên thứ ba dưới sự bảo trợ của Google.
  • Tập trung vào phát triển giao diện người dùng: hỗ trợ chuẩn hóa môi trường Backend nhất quán và đơn giản, Frontend có thể tập trung thiết kế, tạo mã, phát triển giao diện người dùng thuận tiện và tiết kiệm thời gian, chi phí.
  • Firebase không có máy chủ
  • Machine Learning: hỗ trợ bộ Machine Learning với các API sẵn có cho các tính năng khác nhau
  • Tạo lưu lượng truy cập: cung cấp các liên kết ứng dụng trên các tìm kiếm của Google
  • Theo dõi lỗi: hỗ trợ tính năng tìm kiếm và khắc phục nhanh chóng từ những lỗi nhỏ trên giao diện tới lỗi của hệ thống và tạo ra báo cáo.
  • Sao lưu: cung cấp tính năng tự động sao lưu một cách thường xuyên, tránh mất dữ liệu khách hàng.

advantage of firebase

10 hạn chế của Firebase

  • Không phải mã nguồn mở.
  • Người dùng không có quyền truy cập mã nguồn: khiến nhà phát triển khó khăn trong việc thay đổi các tính năng.
  • Firebase không hoạt động ở nhiều quốc gia: điển hình là Trung Quốc
  • Chỉ hoạt động với Cơ sở dữ liệu NoSQL: Firebase sử dụng Json và hầu như không có tính năng SQL mặc dù đã có những cải tiến đáng kể trên Cloud
  • Truy vấn chậm: hạn chế kết nối đồng thời và truy vấn với hiệu suất chậm
  • Không phải tất cả dịch vụ đều miễn phí: điển hình là chức năng Cloud Vision
  • Chi phí đắt và không ổn định
  • Chỉ chạy trên Google Cloud
  • Thiếu Dedicated Servers: hoạt động hoàn toàn trên cấu trúc không sử dụng Server
  • Không cung cấp các API GraphQL: Firebase chỉ cung cấp các tùy chọn mặc định REST

Kết luận

Có thể thấy các nhà phát triển ứng dụng trên thế giới đã và đang sử dụng những tính năng, tận dụng những ưu điểm mà Firebase mang lại có thể kể đến một vài ứng dụng nổi bật như: Alibaba, Todoist, eBay Motors,…

Nền tảng này đã đem đến rất nhiều tiện ích cho người dùng trong quá trình phát triển ứng dụng di động và web. Đây cũng là một nền tảng để xây dựng những ứng dụng IOT đơn giản mà chúng ta sẽ học trong các bài tiếp theo.

5/5 - (4 bình chọn)

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *