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

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

Sơ lược về Firebase

Firebase là gì ?

Firebase là một platform do Google phân phối, nhằm mục đích tương hỗ việc tạo ra những Web App, Mobile App một cách nhanh gọn. Họ cung ứng rất nhiều công cụ và dịch vụ tiện ích để tăng trưởng những ứng dụng chất lượng. Với việc sử dụng Firebase, một developer hoàn toàn có thể tập trung chuyên sâu vào việc tăng trưởng ứng dụng mà không cần quá lo ngại về việc mẫu sản phẩm hoạt động giải trí như thế nào ở phía Backend. ( Backend ở đây chỉ ra việc giải quyết và xử lý và tàng trữ tài liệu trong service, ở vùng “ phía sau ” mà người dùng không hề thấy được )
Firebase chính là một trong những BaaS ( Backend as a service ). Hướng đến đối tượng người dùng hầu hết 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à năng lực đơn giản hóa những thao tác với cơ sở tài liệu. Với Firebase, ta hoàn toàn 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 nhận người dùng, Cloud Messaging, … thế cho nên nó hoàn toàn có thể thay thế sửa chữa phần Backend của một Application .
Với tính đa năng, nó tương hỗ cả 2 nền tảng Android và IOS và tính bảo mật thông tin tốt đến từ Google, nên khá nhiều Developer chọn Firebase làm nền tảng tiên phong để thiết kế xây dựng ứng dụng cho hàng triệu ngươi dùng trên toàn quốc tế .
Các dịch vụ của Firebase phần đông là không tính tiền nhưng những gì nó mang lại vô cùng hữu dụng. Nhanh chóng, đơn thuần và hiểu người dùng. Đối với dự án Bất Động Sản tăng trưởng ứng dụng vừa và nhỏ thì Firebase là lựa chọn tối ưu. Tuy nhiên, 1 số ít tiện ích nâng cao ta cần phải chi trả khoản phí tăng cấp và so với việc thiết kế xây dựng Backend truyền thống lịch sử thì nó còn khá đắt đỏ. Do đó tùy vào nhu yếu ta hoàn toàn có thể lựa chọn sử dụng Firebase sao cho hài hòa và hợp lý .

Các Services của Firebase

Google đã tăng trưởng rất nhiều tính năng có í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 yếu sử dụng của nhà tăng trưởng, đơn cử như sau :

Firebase Develop & Test Your App

Đây là nhóm công cụ dành cho nhà tăng trưởng ứng dụng ở mức tối giản nhằm mục đích giúp họ hoàn toàn có thể kiểm tra những công dụng của mẫu sản phẩm. Bao gồm

Firebase Realtime Daabase

Ta hoàn toàn có thể hiểu đây chính là một cơ sở tài liệu dạng NoSQL ( tức không theo cấu trúc bảng ), tài liệu được lưu và đồng nhất trên đám mây. Tất cả tài liệu sẽ được đồng điệu trên tổng thể clients trong thời hạn thực, khả dụng ngay cả khi ứng dụng đang offline. Firebase Realtime Database có tương hỗ cho Android, IOS, Web, C + +, Unity và Xamarin. Các client san sẻ một bộc lộ Realtime Database và tự động hóa tiếp đón những biến hóa với tài liệu mới nhất, do đó người dùng hoàn toàn có thể tàng trữ và lấy tài liệu từ sever rất thuận tiện .
Firebase Realtime Database thường tích hợp với Authentication Firebase để tạo ra những quy tắc bảo mật thông tin, quyền đọc và ghi tài liệu .
Đây chính là một cơ sở tài liệu NoQuery, do đó nó có những tối ưu hóa công dụng so với cơ sở tài liệu quan hệ. Cả một cơ sở tài liệu là một cây Json lớn, với độ trễ thấp, Firebase Realtime Database được cho phép ta thiết kế xây dựng những ứng dụng cần độ realtime như app chat, game trực tuyến, hay những 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

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

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

** 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

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 tất cả chúng ta upload một tấm ảnh lên Google Storage thì Cloud Functions sẽ tự động hóa trigger sự kiện đó để giải quyết và xử lý một tác vụ nào đó, ví dụ điển hình 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

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

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

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

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

Firebase Grow & Engage Your Audience

Đây là nhóm công cụ hoàn toàn có thể nghiên cứu và phân tích tài liệu nhằm mục đích tối ưu hóa và nâng cao thưởng thức 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

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

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

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

Ư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 những nhà tăng trưởng ứng dụng trên quốc tế đã 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 hoàn toàn có thể kể đến một vài ứng dụng điển hình 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 quy trình tăng trưởng ứng dụng di động và web. Đây cũng là một nền tảng để kiến thiết xây dựng những ứng dụng IOT đơn thuần mà tất cả chúng ta sẽ học trong những bài tiếp theo .

5/5 – ( 3 bầu chọn )

No related posts .